声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2330|回复: 10

[编程技巧] feval 命令如何使用?

[复制链接]
发表于 2008-4-24 10:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-4-24 10:12 | 显示全部楼层
新人多看看置顶帖会有很多收获的。
你的问题描述混乱,而且似乎楼主需要看看比较基础的matlab书籍。
发表于 2008-4-24 10:16 | 显示全部楼层
关于feval的用法可参见下面的帖子。
http://forum.vibunion.com/forum/ ... 1&authorid=1691

评分

1

查看全部评分

发表于 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
又错在哪?
发表于 2008-4-24 12:57 | 显示全部楼层
改成下面这样试试
  1. a=-1;b=0;
  2. fh=@(x)(x^5+5*b^3-2*x+1)
  3. y1=feval(fh,a);
  4. y2=feval(fh,b);
  5. ...
  6. y3=feval(fh,c);
  7. ...
复制代码

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

评分

1

查看全部评分

 楼主| 发表于 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);
发表于 2008-4-24 13:09 | 显示全部楼层
现在应该可以了
 楼主| 发表于 2008-4-24 13:13 | 显示全部楼层

回复 8楼 的帖子

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

[ 本帖最后由 龙舟五号 于 2008-4-24 13:19 编辑 ]
发表于 2008-4-24 13:14 | 显示全部楼层
定义了一个匿名函数,fh是这个函数的句柄。
 楼主| 发表于 2008-4-24 13:18 | 显示全部楼层
谢谢!谢谢!没想到这么快就回复了,谢谢各位!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-3 08:26 , Processed in 0.068361 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表