24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1604  |  回复: 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的回帖

梦在潇湘

铁杆木虫 (著名写手)

【答案】应助回帖


臭水沟(金币+1): 谢谢应助~~ 2011-06-26 21:10:46
jiasen1980(金币+5): 2011-06-26 22:21:33
Subscripted assignment dimension mismatch.
是指在引用矩阵的时候矩阵下标不符,比如一个2*2的矩阵和3*3的矩阵相乘,就会出现这种问题,至于具体是什么地方出现问题,需要详细分析程序,但错误肯定是有矩阵引用引起的。
2楼2011-06-26 20:17:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

这程序让你编的,符号也太不规范了,公式里面的符号跟程序里都不一样,看起来是相当累啊
3楼2011-06-27 00:03:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)

【答案】应助回帖


xiegangmai(金币+1): 谢谢应助! 2011-06-28 21:44:06
jiasen1980(金币+6): 多谢 我试一下 2011-06-29 14:19:11
没有精确解可能是因为楼主使用了vpa,它的含义是Variable precision arithmetic——变精度算法,是在纯粹的符号运算和matlab数值运算之间做的折中,就是兼顾运算速度和运算精度。

楼主不妨试试去掉vpa。
希望对你有用
往事并不如烟
4楼2011-06-28 21:40:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jiasen1980 的主题更新
信息提示
请填处理意见