找不到显式解决方案

1个视图(过去30天)
李继英
李继英 2020年3月29日
A=6.30;B=9.40;delta=0.34;
EG0=1.519;a=0.472*10^(-3);seta=230;p=2.44;
T1=293.15;T2=373.15;
y=900*10^(-9):10^(-9):1700*10^(-9);
h=4.13566*10^(-15);
EG1=EG0-a*seta*0.5*(功率(1+((2*T1)/seta)^p,1/p)-1);
EG2=EG0-a*seta*0.5*(功率(1+((2*T2)/seta)^p,1/p)-1);
EG3=EG0-a*seta*0.5*(功率(1+((2*300)/seta)^p,1/p)-1);
符号nr号
c=299792452;
hw=(h*c)/(nr*y);
x1=hw/EG1;x2=hw/(EG1+delta);
fx1=功率(x1,-2)。*(2-sqrt(1+x1)-sqrt(1-x1));
fx2=功率(x2,-2)。*(2-sqrt(1+x2)-sqrt(1-x2));
eq=nr^2-A*(fx1+0.5*fx2*(EG1/(EG1+delta))^1.5)-B
求解(eq,nr);
我不知道怎么解决“nr”。唯一未知的数字是nr,但是MATLAB在solve(第316行)中说“找不到显式解”。我该怎么解决?

0条评论

登录发表评论。

答案(1)

赞布拉诺
赞布拉诺 2020年3月29日
嗨,吉英,
我从你的代码中看到,有一个变量‘y’,它是801个元素的向量。在遵循代码的其余行之后,Thas使您在“eq”中拥有801个元素。我想你想把“eq”的每一个元素都算作“nr”,对吧?
如果是,则将解放入for循环中,该循环对向量“eq”的每个元素执行该解。请注意,当对第一个元素(即等式(1))进行求解时,将得到:
求解(式(1),nr)
答复=
-3.4055195247431015387149927562818号
3.4055195247431015387149927562818号
-0.23371803267167591292641549805172-0.8447288922660849307066527049399i
-0.23371803267167591292641549805172+0.8447288922660849307066527049399i
-0.2188548808156796407592891677842-1.2614207237196718736658771540873i
-0.2188548808156796407592891677842+1.2614207237196718736658771540873i
-0.20098312988087114922620258832011-0.6398409882926713871023290039748i
-0.2009831298808711492262025882011+0.6398409882926713871023290039748i
-0.09527941085073597800776403284443-0.55834240108227279261730458860913i
-0.09527941085073597800776403284443+0.55834240108227279261730458860913i
-0.073816698835835126920532553463148-0.6777064626384383539367083081255i
-0.073816698835835126920532553463148+0.6777064626384383539367083081255i
-0.035279698323879157508614161138525-0.501040797719727104870701077365044I
-0.035279698323879157508614161138525+0.501040797719727104870701077365044I
-5.3926038442842603885567382392378e-33-0.58125154905583862889817538507886i
-5.3926038442842603885567382392378e-33+0.58125154905583862889817538507886i
-7.703719777548943412223917703397E-34-0.847305690509041778663882760979I
-7.703719777548943412223917703397E-34+0.847305690509041778663882760979I
0.000000000000000000000000014637067342992483225432363645-0.447298478293315063304897301645i
0.000000000000000000000000014637067532992483225432363645+0.447298478293315063304897301645i
0.035279698323879157508614161138514-0.501040797719727104870701077365046I
0.035279698323879157508614161138514+0.501040797719727104870701077365046I
0.073816698835835126920532553463143-0.6777064626384383539367083081256i
0.073816698835835126920532553463143+0.6777064626384383539367083081256i
0.09527941085073597800776403284446-0.55834240108227279261730458860914i
0.09527941085073597800776403284446+0.55834240108227279261730458860914i
0.2009831298808711492262025882011-0.6398409882926713871023290039749i
0.2009831298808711492262025882011+0.6398409882926713871023290039749i
0.2188548808156796407592891677842-1.2614207237196718736658771540873i
0.2188548808156796407592891677842+1.2614207237196718736658771540873i
0.23371803267167591292641549805172-0.8447288922660849307066527049399i
0.23371803267167591292641549805172+0.8447288922660849307066527049399i
另外,尝试使用命令“vpa”,以便在使用“solve”之前简化符号分数上的系数。这可能会大大减少“求解”给出数值结果所需的时间。
希望这能帮助解决问题。

4条评论

显示 1条旧评论
赞布拉诺
赞布拉诺 2020年3月29日
好建议,谢谢!
李继英
李继英 2020年3月30日
我明白了。非常感谢!不过,我能再问一个问题吗?实际上,我的最终目的地是plot(y,nr1)。你能告诉我我的密码吗?
我修改的代码如下:
nr1=零(1:801);
对于i=1:801
nr1(1,i)=vpasolve(式(i),nr);
结束
赞布拉诺
赞布拉诺 2020年3月30日
当然,然后把'nr1'和'nr'标出来。

登录发表评论。

登录来回答这个问题。