24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3074  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

小雨滴001

新虫 (初入文坛)

[求助] 新人求助解MATLAB超越方程,方程中含有复数已有2人参与

mathematica和matlab,我都试着写了方程,是用迭代初值的方法,可是结果总是随着初值变化,我也试了先画图,但是也无法画出来,耽误了好几天了,真的好烦躁。1stopt这个软件我也没得。。。。一共就5个金币了,能回答的大神帮帮忙吧!拜托了!
这是的mathematica的程序
n1 = 1.445;
n2 = 3.445;
n3 = 0.1453 + I*11.3587;
n4 = 1;
h = 100*10^-9;
lamada = 1550*10^-9;
k0 = 2*Pi/lamada;
b = 70*10^-9;
n = 1;
N0 = 0.1453 + I*11.3587;
FindRoot[n*Pi + ArcTan[Sqrt[N1^2 - n2^2]/Sqrt[n1^2 - N1^2]] +
   ArcTan[Sqrt[
      N1^2 - n3^2]*(1 + (Sqrt[N1^2 - n4^2] - Sqrt[N1^2 - n3^2])*
          Exp[-2*k0*Sqrt[N1^2 - n3^2]*h]/(Sqrt[N1^2 - n4^2] +
             Sqrt[N1^2 - n3^2]))/(1 - (Sqrt[N1^2 - n4^2] -
            Sqrt[N1^2 - n3^2])*
          Exp[-2*k0*Sqrt[N1^2 - n3^2]*h]/(Sqrt[N1^2 - n4^2] +
             Sqrt[N1^2 - n3^2]))/Sqrt[n1^2 - N1^2]] -
   k0*Sqrt[(n1^2 - N1^2)]*b == 0, {N1, N0}, WorkingPrecision -> 24]

新人求助解MATLAB超越方程,方程中含有复数
N16Y7`CLCLKS{PN)53U@6JX.png
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

【答案】应助回帖

把上面所说的错误改了之后……

楼主说自己画图遇到了困难,可能是指ContourPlot有压力吧。这点上的确是有点麻烦,可能是因为楼主的函数比较复杂,也可能是因为其他的什么原因(不排除是反三角函数引发了什么困难。用复数的模和辐角重新表达可能会好一些?我不确定。),总之我暂时还没试出合适的选项让ContourPlot出图。(即使是在取了绝对值的情况下。)但是这里其实可以利用Plot3D来规避(Plot3D身为老牌画图函数,具有很强的稳定性。)
CODE:
With[{N1 = x + I y},
Plot3D[0 ==
   Abs[n \[Pi] + ArcTan[Sqrt[N1^2 - n2^2]/Sqrt[n1^2 - N1^2]] +
     ArcTan[(Sqrt[
       N1^2 - n2^2] (1 + ((Sqrt[N1^2 - n4^2] - Sqrt[N1^2 - n3^2]) Exp[-2 k0 Sqrt[
            N1^2 - n3^2] h])/(
         Sqrt[N1^2 - n4^2] + Sqrt[
          N1^2 - n3^2])))/((1 - ((Sqrt[N1^2 - n4^2] - Sqrt[N1^2 - n3^2]) Exp[-2 k0 Sqrt[
            N1^2 - n3^2] h])/(Sqrt[N1^2 - n4^2] + Sqrt[N1^2 - n3^2])) Sqrt[
       n1^2 - N1^2])] - k0 Sqrt[n1^2 - N1^2] b], {x, -2, 2}, {y, -1, 1},
  PlotRange -> {-1, 0}, PlotPoints -> 50]]

新人求助解MATLAB超越方程,方程中含有复数-1
底部的那个轮廓线上的点全是你这个方程的解。(注意,这些点全是复平面上的点。)接下来应该怎么办应该不消我说了。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
7楼2015-05-08 17:47:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

小雨滴001

新虫 (初入文坛)

忘记说清楚,n是可以取从0开始的任意整数的
2楼2015-05-08 14:56:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eidie

木虫之王 (文坛精英)

文献杰出贡献

【答案】应助回帖

感谢参与,应助指数 +1
patpat~ 不要哭。

%%%%%%%%%%%%%%%%%%%
%不知道对不对,妹妹先试试看
clear;
close;
clc;
n1 = 1.445;
n2 = 3.445;
n3 = 0.1453 + i*11.3587;
n4 = 1;
h = 100*10^-9;
lamada = 1550*10^-9;
k0 = 2*pi/lamada;
b = 70*10^-9;
n = 1;
N0 = 0.1453 + i*11.3587;

syms N1
delta3=(1+((N1^2-n4^2)^(1/2)-(N1^2-n3^2)^(1/2))/((N1^2-n4^2)^(1/2)+(N1^2-n3^2)^(1/2))*exp(-2*k0*(N1^2-n3^2)^(1/2)*h)) ...
    /(1-((N1^2-n4^2)^(1/2)-(N1^2-n3^2)^(1/2))/((N1^2-n4^2)^(1/2)+(N1^2-n3^2)^(1/2))*exp(-2*k0*(N1^2-n3^2)^(1/2)*h));
f=-k0*(n1^2-N1^2)^(1/2)+n*pi+atan((N1^2-n2^2)^(1/2)/(n1^2-N1^2)^(1/2))-atan((N1^2-n2^2)^(1/2)/(n1^2-N1^2)^(1/2)*delta3);

ezplot(f);
solve(f,'N1')
跟一个女博士相亲,我问她:“你学历这么高,嫁的出去吗?”她说:“这个问题,等我回去写篇论文回答你。”
3楼2015-05-08 16:40:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
别的先不说,你的代码里,第二个ArcTan中某处的n2写成了n3你发现了没有?
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
4楼2015-05-08 17:23:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见