哪位高手帮忙解一个方程,谢谢啊。我搞了半天没有出来。
k=5.0e-4:1e-6:6e-4;h=1.6e-6; n1=2.2899; n0=1.5040; n2=1.000;
p1=sqrt(k.^2.*n1.^2-b.^2); p2=sqrt(b.^2-k.^2.*n2.^2); p0=sqrt(b.^2-k.^2.*n0.^2);
y=solve('p1*h-pi-atan(p0./p1)-atan(p2./p1)=0');
出错的信息室b没有定义:
??? Undefined function or variable 'b'.
后来,我就把中间变量p0,p1,p2的表达式直接代入solve函数,但是还是出错,改后和出错原因如下:
k=5.0e-4:1e-6:6e-4;
h=1.6e-6; n1=2.2899; n0=1.5040; n2=1.000;
y=solve('(sqrt(k.^2.*n1.^2-b.^2)*h-pi-atan(sqrt(b.^2-k.^2.*n0.^2)./sqrt(k.^2.*n1.^2-b.^2))-atan(sqrt(b.^2-k.^2.*n2.^2)./sqrt(k.^2.*n1.^2-b.^2))=0');
出错提示信息:
??? Error using ==> solve
'sqrt(k.^2.*n1.^2-b.^2)*h-pi-atan(sqrt(b.^2-k.^2.*n0.^2)./sqrt(k.^2.*n1.^2-b.^2))-atan(sqrt(b.^2-k.^2.*n2.^2)./sqrt(k.^2.*n1.^2-b.^2))=0' is not a valid expression or equation.
Error in ==> E:\matlab\work\Untitled3.m
On line 6==> y=solve('sqrt(k.^2.*n1.^2-b.^2)*h-pi-atan(sqrt(b.^2-k.^2.*n0.^2)./sqrt(k.^2.*n1.^2-b.^2))-atan(sqrt(b.^2-k.^2.*n2.^2)./sqrt(k.^2.*n1.^2-b.^2))=0');
哪位高手能给我解释一下,谢谢。
[ 本帖最后由 ChaChing 于 2009-5-23 10:47 编辑 ]
回复 楼主 awlfa 的帖子
Undefined function or variableRef3F
常见的程序出错问题整理 (eight)
http://forum.vibunion.com/forum/thread-46001-1-1.html 好的。谢谢大侠啊。
哪位高手帮忙解一个方程,谢谢啊。
开始,我是想直接画图,但是老出现问题,后来我就想先接触两组数据再画图。下面是我要解的方程,我想解出来后再画图,但是还没有解出来,方程本身就出错了。哪位高手帮我看看问题出在哪里。谢谢。k=5.0e+4:1e+3:6e+4;
h=1.6e-6;
n1=2.2899;
n0=1.5040;
n2=1.000;
y=solve('p1=sqrt(k.^2.*n1.^2-b.^2)',...
'p2=sqrt(b.^2-k.^2.*n2.^2)','p0=sqrt(b.^2-k.^2.*n0.^2)',...
'p1*h-pi-atan(p0./p1)-atan(p2./p1)=0');
x=subs(b);
plot(k,x);
错误提示如下:
??? Error using ==> solve
'p1=sqrt(k.^2.*n1.^2-b.^2)' is not a valid expression or equation.
Error in ==> E:\matlab\work\Untitled2.m
On line 6==> y=solve('p1=sqrt(k.^2.*n1.^2-b.^2)',...
solve 函数不是可以解方程的吗?
谢谢 solve里不需要点乘,help solve
这组方程没有解析解,试试fsolve 还是不行啊。哪位高手能帮忙解决下。但是有人画出来了,书上有画出来。可是我就是画不出来。它又没有答案,非常郁闷。
页:
[1]