System is rank deficient. Solution is not unique.

4 visualizzazioni (ultimi 30 giorni)
dcydhb dcydhb
dcydhb dcydhb il 16 Mag 2019
Commentato: dcydhb dcydhb il 16 Mag 2019
when i use 'equationsToMatrix',the roots is so big,for example,
a0 =
- 3.709974539e221 + 1.690416187e223*i
a1 =
2.186159999e221 + 7.719303628e220*i
and when i use the 'linsolve',it runs out
warnings: System is rank deficient. Solution is not unique.
so is there any way to get the roots that is not too big and is normal?
and if there is the way that we can get the analytical solution?
codes are as this
omega=1.795200;
m0=7.234737;
m1=1.816835;
m2=5.349043;
m3=8.732933;
m4=12.024736;
m5=15.265388;
m6=18.476340;
m7=21.668910;
m8=24.849430;
m9=28.021668;
m10=31.187986;
syms a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 alpha0 alpha1 alpha2 alpha3 alpha4 alpha5 alpha6 alpha7 alpha8 alpha9;
h=22;
hgang=22;
agang=2.2497;
dgang=21.1940;
a=agang/hgang;
d=dgang/hgang;
equation0=alpha0 == (2*a1*sin(d*m1)*besselk(1, a*m1))/(d*m1*(sin(2*m1)/(4*m1) + 1/2)^(1/2)) + (2*a2*sin(d*m2)*besselk(1, a*m2))/(d*m2*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) + (2*a3*sin(d*m3)*besselk(1, a*m3))/(d*m3*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) + (2*a4*sin(d*m4)*besselk(1, a*m4))/(d*m4*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) + (2*a0*sinh(d*m0)*(besselj(1, a*m0) + bessely(1, a*m0)*i))/(d*m0*(sinh(2*m0)/(4*m0) + 1/2)^(1/2));
equation1=alpha1 == (2*a1*d*m1*sin(d*m1)*besselk(1, a*m1))/((sin(2*m1)/(4*m1) + 1/2)^(1/2)*(pi^2 - d^2*m1^2)) + (2*a2*d*m2*sin(d*m2)*besselk(1, a*m2))/((sin(2*m2)/(4*m2) + 1/2)^(1/2)*(pi^2 - d^2*m2^2)) + (2*a3*d*m3*sin(d*m3)*besselk(1, a*m3))/((sin(2*m3)/(4*m3) + 1/2)^(1/2)*(pi^2 - d^2*m3^2)) + (2*a4*d*m4*sin(d*m4)*besselk(1, a*m4))/((sin(2*m4)/(4*m4) + 1/2)^(1/2)*(pi^2 - d^2*m4^2)) - (2*a0*d*m0*sinh(d*m0)*(besselj(1, a*m0) + bessely(1, a*m0)*i))/((sinh(2*m0)/(4*m0) + 1/2)^(1/2)*(pi^2 + d^2*m0^2));
equation2=alpha2 == (2*a0*d*m0*sinh(d*m0)*(besselj(1, a*m0) + bessely(1, a*m0)*i))/((4*pi^2 + d^2*m0^2)*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)) - (2*a2*d*m2*sin(d*m2)*besselk(1, a*m2))/((4*pi^2 - d^2*m2^2)*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) - (2*a3*d*m3*sin(d*m3)*besselk(1, a*m3))/((4*pi^2 - d^2*m3^2)*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) - (2*a4*d*m4*sin(d*m4)*besselk(1, a*m4))/((4*pi^2 - d^2*m4^2)*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) - (2*a1*d*m1*sin(d*m1)*besselk(1, a*m1))/((4*pi^2 - d^2*m1^2)*(sin(2*m1)/(4*m1) + 1/2)^(1/2));
equation3=alpha3 == (2*a1*d*m1*sin(d*m1)*besselk(1, a*m1))/((9*pi^2 - d^2*m1^2)*(sin(2*m1)/(4*m1) + 1/2)^(1/2)) + (2*a2*d*m2*sin(d*m2)*besselk(1, a*m2))/((9*pi^2 - d^2*m2^2)*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) + (2*a3*d*m3*sin(d*m3)*besselk(1, a*m3))/((9*pi^2 - d^2*m3^2)*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) + (2*a4*d*m4*sin(d*m4)*besselk(1, a*m4))/((9*pi^2 - d^2*m4^2)*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) - (2*a0*d*m0*sinh(d*m0)*(besselj(1, a*m0) + bessely(1, a*m0)*i))/((9*pi^2 + d^2*m0^2)*(sinh(2*m0)/(4*m0) + 1/2)^(1/2));
equation4=alpha4 == (2*a0*d*m0*sinh(d*m0)*(besselj(1, a*m0) + bessely(1, a*m0)*i))/((16*pi^2 + d^2*m0^2)*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)) - (2*a2*d*m2*sin(d*m2)*besselk(1, a*m2))/((16*pi^2 - d^2*m2^2)*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) - (2*a3*d*m3*sin(d*m3)*besselk(1, a*m3))/((16*pi^2 - d^2*m3^2)*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) - (2*a4*d*m4*sin(d*m4)*besselk(1, a*m4))/((16*pi^2 - d^2*m4^2)*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) - (2*a1*d*m1*sin(d*m1)*besselk(1, a*m1))/((16*pi^2 - d^2*m1^2)*(sin(2*m1)/(4*m1) + 1/2)^(1/2));
equation5=a0 == (sinh(sinh(d*m0) - m0)/(m0*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)) - (alpha0*sinh(d*m0))/(2*a*m0*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)) + (pi*alpha1*d*m0*sinh(d*m0)*(besseli(2, a*m1) + besseli(1, a*m1)/(a*m1)))/(besseli(1, a*m1)*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)*(pi^2 + d^2*m0^2)) - (2*pi*alpha2*d*m0*sinh(d*m0)*(besseli(2, a*m2) + besseli(1, a*m2)/(a*m2)))/((4*pi^2 + d^2*m0^2)*besseli(1, a*m2)*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)) + (3*pi*alpha3*d*m0*sinh(d*m0)*(besseli(2, a*m3) + besseli(1, a*m3)/(a*m3)))/((9*pi^2 + d^2*m0^2)*besseli(1, a*m3)*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)) - (4*pi*alpha4*d*m0*sinh(d*m0)*(besseli(2, a*m4) + besseli(1, a*m4)/(a*m4)))/((16*pi^2 + d^2*m0^2)*besseli(1, a*m4)*(sinh(2*m0)/(4*m0) + 1/2)^(1/2)))/(m0*(besselj(2, a*m0) + bessely(2, a*m0)*i - besselj(1, a*m0)/(a*m0) + (bessely(1, a*m0)*(-i))/(a*m0)));
equation6=a1 == (sin(sin(d*m1) - m1)/(m1*(sin(2*m1)/(4*m1) + 1/2)^(1/2)) - (alpha0*sin(d*m1))/(2*a*m1*(sin(2*m1)/(4*m1) + 1/2)^(1/2)) - (pi*alpha1*d*m1*sin(d*m1)*(besseli(2, a*m1) + besseli(1, a*m1)/(a*m1)))/(besseli(1, a*m1)*(sin(2*m1)/(4*m1) + 1/2)^(1/2)*(pi^2 - d^2*m1^2)) + (2*pi*alpha2*d*m1*sin(d*m1)*(besseli(2, a*m2) + besseli(1, a*m2)/(a*m2)))/((4*pi^2 - d^2*m1^2)*besseli(1, a*m2)*(sin(2*m1)/(4*m1) + 1/2)^(1/2)) - (3*pi*alpha3*d*m1*sin(d*m1)*(besseli(2, a*m3) + besseli(1, a*m3)/(a*m3)))/((9*pi^2 - d^2*m1^2)*besseli(1, a*m3)*(sin(2*m1)/(4*m1) + 1/2)^(1/2)) + (4*pi*alpha4*d*m1*sin(d*m1)*(besseli(2, a*m4) + besseli(1, a*m4)/(a*m4)))/((16*pi^2 - d^2*m1^2)*besseli(1, a*m4)*(sin(2*m1)/(4*m1) + 1/2)^(1/2)))/(m1*(besselk(2, a*m1) - besselk(1, a*m1)/(a*m1)));
equation7=a2 == (sin(sin(d*m2) - m2)/(m2*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) - (alpha0*sin(d*m2))/(2*a*m2*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) - (pi*alpha1*d*m2*sin(d*m2)*(besseli(2, a*m1) + besseli(1, a*m1)/(a*m1)))/(besseli(1, a*m1)*(sin(2*m2)/(4*m2) + 1/2)^(1/2)*(pi^2 - d^2*m2^2)) + (2*pi*alpha2*d*m2*sin(d*m2)*(besseli(2, a*m2) + besseli(1, a*m2)/(a*m2)))/((4*pi^2 - d^2*m2^2)*besseli(1, a*m2)*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) - (3*pi*alpha3*d*m2*sin(d*m2)*(besseli(2, a*m3) + besseli(1, a*m3)/(a*m3)))/((9*pi^2 - d^2*m2^2)*besseli(1, a*m3)*(sin(2*m2)/(4*m2) + 1/2)^(1/2)) + (4*pi*alpha4*d*m2*sin(d*m2)*(besseli(2, a*m4) + besseli(1, a*m4)/(a*m4)))/((16*pi^2 - d^2*m2^2)*besseli(1, a*m4)*(sin(2*m2)/(4*m2) + 1/2)^(1/2)))/(m2*(besselk(2, a*m2) - besselk(1, a*m2)/(a*m2)));
equation8=a3 == (sin(sin(d*m3) - m3)/(m3*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) - (alpha0*sin(d*m3))/(2*a*m3*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) - (pi*alpha1*d*m3*sin(d*m3)*(besseli(2, a*m1) + besseli(1, a*m1)/(a*m1)))/(besseli(1, a*m1)*(sin(2*m3)/(4*m3) + 1/2)^(1/2)*(pi^2 - d^2*m3^2)) + (2*pi*alpha2*d*m3*sin(d*m3)*(besseli(2, a*m2) + besseli(1, a*m2)/(a*m2)))/((4*pi^2 - d^2*m3^2)*besseli(1, a*m2)*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) - (3*pi*alpha3*d*m3*sin(d*m3)*(besseli(2, a*m3) + besseli(1, a*m3)/(a*m3)))/((9*pi^2 - d^2*m3^2)*besseli(1, a*m3)*(sin(2*m3)/(4*m3) + 1/2)^(1/2)) + (4*pi*alpha4*d*m3*sin(d*m3)*(besseli(2, a*m4) + besseli(1, a*m4)/(a*m4)))/((16*pi^2 - d^2*m3^2)*besseli(1, a*m4)*(sin(2*m3)/(4*m3) + 1/2)^(1/2)))/(m3*(besselk(2, a*m3) - besselk(1, a*m3)/(a*m3)));
equation9=a4 == (sin(sin(d*m4) - m4)/(m4*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) - (alpha0*sin(d*m4))/(2*a*m4*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) - (pi*alpha1*d*m4*sin(d*m4)*(besseli(2, a*m1) + besseli(1, a*m1)/(a*m1)))/(besseli(1, a*m1)*(sin(2*m4)/(4*m4) + 1/2)^(1/2)*(pi^2 - d^2*m4^2)) + (2*pi*alpha2*d*m4*sin(d*m4)*(besseli(2, a*m2) + besseli(1, a*m2)/(a*m2)))/((4*pi^2 - d^2*m4^2)*besseli(1, a*m2)*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) - (3*pi*alpha3*d*m4*sin(d*m4)*(besseli(2, a*m3) + besseli(1, a*m3)/(a*m3)))/((9*pi^2 - d^2*m4^2)*besseli(1, a*m3)*(sin(2*m4)/(4*m4) + 1/2)^(1/2)) + (4*pi*alpha4*d*m4*sin(d*m4)*(besseli(2, a*m4) + besseli(1, a*m4)/(a*m4)))/((16*pi^2 - d^2*m4^2)*besseli(1, a*m4)*(sin(2*m4)/(4*m4) + 1/2)^(1/2)))/(m4*(besselk(2, a*m4) - besselk(1, a*m4)/(a*m4)));
%{
linsolve([equation0, equation1, equation2,equation3,equation4,equation5,equation6, equation7, equation8,equation9], [a0, a1, a2 ,a3, a4,alpha0 ,alpha1 ,alpha2 ,alpha3 ,alpha4]);
%}
[A, b] = equationsToMatrix([equation0, equation1, equation2,equation3,equation4,equation5,equation6, equation7, equation8,equation9], [a0, a1, a2 ,a3, a4 , alpha0 ,alpha1 ,alpha2 ,alpha3 ,alpha4]);
x = A\b;
simplify( A*x-b)
format long
solution=@(n)(vpa(x(n+1),10));
a0= solution(0)
a1= solution(1)
a2 = solution(2)
a3= solution(3)
a4 = solution(4)
alpha0= solution(5)
alpha1 = solution(6)
alpha2 = solution(7)
alpha3 = solution(8)
alpha4 = solution(9)
  1 Commento
dcydhb dcydhb
dcydhb dcydhb il 16 Mag 2019
and i use vpa to get the equation
ans =
[ alpha0 == a0*(0.28904346435495937454904384753433 - 0.87960730985331403650020193713905*i) + 8.8094502760255682726685940175273*a1 - 0.76696878783276698231732851013877*a2 + 0.21287495342423771120857187993236*a3 - 0.085862186948819205129183525484197*a4, alpha1 == a0*(- 0.24023360938539297239942335138463 + 0.73107080749743896892640045576716*i) + 3.9651424117839154741111447110571*a1 + 1.2206623524562588050000850874718*a2 - 0.24736901094406832235816711880948*a3 + 0.092678459587941100282791186718937*a4, alpha2 == a0*(0.15945408795732475204629714989596 - 0.48524529577674095659911183856037*i) - 0.7411061398637716698590076060161*a1 + 1.5758141106114248444064285089072*a2 + 0.48137241111391017560321981032598*a3 - 0.12165059438296230092025541345677*a4, alpha3 == a0*(- 0.10218642462669956526573786920986 + 0.31097027663299049630684177141815*i) + 0.31467366238155673987932207600373*a1 - 0.32705112639527200667662376680054*a2 + 0.83482479586648129711614435130552*a3 + 0.25397592688320115013875609246051*a4, alpha4 == a0*(0.067997010419224986010654334613347 - 0.20692620587840678045833105084356*i) - 0.17428036778927068573804865591474*a1 + 0.15504182361725358335896417190702*a2 - 0.17291447432815817733970204357542*a3 + 0.48575402986496466819256312473992*a4, a0 == alpha0*(0.061479238051919034846622068365598 - 0.19491618529428104901115793500737*i) + alpha1*(- 0.18501181421468057107120125297666 + 0.58656870520492946948855889394205*i) + alpha2*(0.088818153271883463854979096314366 - 0.28159255334326489644688406940837*i) + alpha3*(- 0.058099420185986553614145224550874 + 0.18420067829888402936399659863933*i) + alpha4*(0.042556268228656878757311712846688 - 0.1349220602975753633697320545039*i) - 8.9133213450610773176380214156242e222 + 2.8259143247907657790396702496396e223*i, a1 == 0.016426491097406449476921389347815*alpha2 - 0.12151301468668192370671280725859*alpha1 - 0.074561123136306295557507618100467*alpha0 - 0.0071193000852176035671871774510684*alpha3 + 0.004340307474453545196389649781324*alpha4 - 0.011466754141164845644705663498075, a2 == 0.064591827943550074548570859751029*alpha0 - 0.37221666016786266575368750336071*alpha1 - 0.34754066550039284188391475806233*alpha2 + 0.073625592995783845754780348165564*alpha3 - 0.038419981280346784698076368684951*alpha4 + 0.00043346677744978881333372793840619, a3 == 0.25526028990294020838510787898001*alpha1 - 0.060668346502823780655347730610027*alpha0 - 0.35926883621657754062429324189831*alpha2 - 0.63598402113077008281675633612901*alpha3 + 0.1450031168625661709690560350262*alpha4 - 0.014628479795370115782441380253506, a4 == 0.062986767775966133149023467105641*alpha0 - 0.24616514276376190142752348697245*alpha1 + 0.23370196853837821008295702029444*alpha2 - 0.49802736035106666295528077239185*alpha3 - 1.048509054512400433242146787323*alpha4 - 0.004430071982843244221782870760884]
so which term makes the equation rank deficient and how to get the reasonable roots?

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Special Functions in Help Center e File Exchange

Prodotti


Release

R2014a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by