24小时热门版块排行榜    

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

jiasen1980

金虫 (正式写手)

[求助] MATLAB解方程出现??? Subscripted assignment dimension mismatch.

运行一个有缘色散的超越方程求数值解,
下边是我的程序,用MATLAB7.1 运行只能结出前四个解,for循环到w=5时显示
没有精确解,不知问题出在了那里,此外用这个程序计算当e2取复数时候可以运行但去实数如下面的值时候就 出错,求大虫指点迷津,原方程见图片其中K0=2pi/lambda

clc;
clear;
syms b;
neff=zeros(1,31);
digits(200);
for w=1:31
d=vpa(w*5*1e-9);
k0=vpa(2*pi/0.8e-6);
e1=1;
e2=13.425;
w
z=vpa(solve(exp(sqrt(b-e1*k0^2).*d)-(e2*sqrt(b-e1*k0^2)-e1*sqrt(b-e2*k0^2))/(e2*sqrt(b-e1*k0^2)+e1*sqrt(b-e2*k0^2)),b));
neff(1,w)=vpa(sqrt(z)/k0)
end
用算结果显示如下
neff =

  Columns 1 through 4

   3.3286 + 1.6971i   2.2151 + 1.4575i   1.8060 + 1.2174i   1.5881 + 1.0458i

  Columns 5 through 8

        0                  0                  0                  0         

  Columns 9 through 12

        0                  0                  0                  0         

  Columns 13 through 16

        0                  0                  0                  0         

  Columns 17 through 20

        0                  0                  0                  0         

  Columns 21 through 24

        0                  0                  0                  0         

  Columns 25 through 28

        0                  0                  0                  0         

  Columns 29 through 31

        0                  0                  0         


w =

     5

Warning: Explicit solution could not be found.
> In solve at 140
  In sym.solve at 49
??? Subscripted assignment dimension mismatch.
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jiasen1980 的主题更新
信息提示
请填处理意见