杨小鞋 发表于 2007-5-7 10:10

求助 迭代的问题 谢谢!

function U=fu1(x)
x=-1:0.01:1;
U1=1;
b=1/25;
k=2*pi/b;
l=100*b;
n=1;
c=sqrt(i*exp(-i*k*l)/(b*l));
d=cos(k*x.^2/(2*l)*U1);
e=sin(k*x.^2/(2*l)*U1);
g=d-i*e;
f=quad(g,-1,1);

while abs(U(n)-U1)>0.00001
   
    n=n+1;
    %s=;
    d=cos(k*x.^2/(2*l)*U1);
    e=sin(k*x.^2/(2*l)*U1);
    g=d-i*e;
    f=quad(g,-1,1);
    U(n)=c*f
    y=abs(U(n));
    plot(x,y);
end

上面的我学了一段时间的成果,可是老是有问题,请各位高手们帮到看下 谢谢!!!

[ 本帖最后由 eight 于 2007-5-7 10:16 编辑 ]

eight 发表于 2007-5-7 10:18

原帖由 杨小鞋 于 2007-5-7 10:10 发表 http://forum.vibunion.com/forum/images/common/back.gif
function U=fu1(x)
x=-1:0.01:1;
U1=1;
b=1/25;
k=2*pi/b;
l=100*b;
n=1;
c=sqrt(i*exp(-i*k*l)/(b*l));
d=cos(k*x.^2/(2*l)*U1);
e=sin(k*x.^2/(2*l)*U1);
g=d-i*e;
f=quad(g,-1,1);

while abs( ...

建议使用高版本的matlab,例如 2006a、2006b、2007a 等,这些都是 >= 7.2 的版本,然后你会发现编辑窗口有很多错误或者警告的提示

杨小鞋 发表于 2007-5-7 10:24

:@) 谢谢!可是 现在 手头只有7.1的想把上面的程序编出来请问有别的方法么? 谢谢!:@)

eight 发表于 2007-5-7 10:32

原帖由 杨小鞋 于 2007-5-7 10:24 发表 http://forum.vibunion.com/forum/images/common/back.gif
:@) 谢谢!可是 现在 手头只有7.1的想把上面的程序编出来请问有别的方法么? 谢谢!:@)

主要问题—— while 循环中 U 没有赋初值
其他问题—— x 重复定义:既作为输入参数,又在函数体中赋值

[ 本帖最后由 eight 于 2007-5-7 10:41 编辑 ]

杨小鞋 发表于 2007-5-7 10:38

谢谢!!!我修改下试试先 !!:@)

杨小鞋 发表于 2007-5-7 11:07

不好意思,又发拉次消息你!
谢谢!我把X=-1:0.001:1注释之后就Input argument "x" is undefined.
在WHILE中加如U(1)=1以后Error using ==> fcnchk
FUN must be a function, a valid string expression,
or an inline function object.

Error in ==> quad at 56
f = fcnchk(funfcn);

Error in ==> fu1 at 12
f=quad(g,-1,1);

不明白 麻烦你再解释下谢谢!

eight 发表于 2007-5-7 11:13

原帖由 杨小鞋 于 2007-5-7 11:07 发表 http://forum.vibunion.com/forum/images/common/back.gif
不好意思,又发拉次消息你!
谢谢!我把X=-1:0.001:1注释之后就Input argument "x" is undefined.
在WHILE中加如U(1)=1以后Error using ==> fcnchk
FUN must be a function, a valid string expression,
or ...


建议看看 matlab 基础书吧,不然到处碰壁,我的时间、精力也有限
页: [1]
查看完整版本: 求助 迭代的问题 谢谢!