龙舟五号 发表于 2008-4-24 10:02

feval 命令如何使用?

a=-1;b=0;
y1=a^5+5*a^3-2*a+1;
y2=b^5+5*b^3-2*b+1;
while abs(y1-y2)>1e-3

c=(a+b)/2;

y3=c^5+5*b^3-2*c+1;

if y1*y3>0

a=c;y1=y3;

else b=c;y2=y3;

end
end
此程序咋输入后没啥用?不报错也没有输出。还有,如何用feval,好像是啥要啥字符,不懂啊。

[ 本帖最后由 eight 于 2008-4-24 10:28 编辑 ]

sogooda 发表于 2008-4-24 10:12

新人多看看置顶帖会有很多收获的。
你的问题描述混乱,而且似乎楼主需要看看比较基础的matlab书籍。

sogooda 发表于 2008-4-24 10:16

关于feval的用法可参见下面的帖子。
http://forum.vibunion.com/forum/viewthread.php?tid=12178&page=1&authorid=1691

huright 发表于 2008-4-24 11:11

回复 楼主 的帖子

看起来你要用二分法解方程。那就要把你得y1\y2\y3写成函数的形式。

龙舟五号 发表于 2008-4-24 12:55

回复 4楼 的帖子

是的,是在用二分法:
syms x;
a=-1;b=0;



y1=feval(x^5+5*b^3-2*x+1,a);


y2=feval(x^5+5*x^3-2*x+1,b);



while abs(y1-y2)>1e-3




c=(a+b)/2;




y3=feval(x^5+5*x^3-2*x+1,c);




if y1*y3>0




a=c;y1=y3;




else b=c;y2=y3;




end



end
又错在哪?

sogooda 发表于 2008-4-24 12:57

改成下面这样试试a=-1;b=0;
fh=@(x)(x^5+5*b^3-2*x+1)
y1=feval(fh,a);
y2=feval(fh,b);
...
y3=feval(fh,c);
...

[ 本帖最后由 sogooda 于 2008-4-24 13:08 编辑 ]

龙舟五号 发表于 2008-4-24 13:07

回复 6楼 的帖子



??? Error using ==> feval
Invalid function name 'x^5+5*x^3-2*x+1'.

Error in ==> Untitled2 at 6
y1=feval('x^5+5*x^3-2*x+1',a);

sogooda 发表于 2008-4-24 13:09

现在应该可以了

龙舟五号 发表于 2008-4-24 13:13

回复 8楼 的帖子

fh=@(x)(x^5+5*x^3-2*x+1)是啥意思?这样就定义了一个以x为变量的函数是把?

[ 本帖最后由 龙舟五号 于 2008-4-24 13:19 编辑 ]

sogooda 发表于 2008-4-24 13:14

定义了一个匿名函数,fh是这个函数的句柄。

龙舟五号 发表于 2008-4-24 13:18

谢谢!谢谢!没想到这么快就回复了,谢谢各位!
页: [1]
查看完整版本: feval 命令如何使用?