24小时热门版块排行榜    

查看: 1229  |  回复: 4

sanwen2100

至尊木虫 (职业作家)

[求助] 请教一个MATLAB迭代法解方程的问题 已有1人参与

最近在解一个非线性方程,但,根据书上的例子来编写的迭代程序,最后的运算结果却有两个问题,“Error using feval      Undefined function 'f' for input arguments of type 'double'.
和“Error in Iteration (line 8)           P(k )=feval('f',P(k-1))”。书上的迭代代码在附件里,请帮我看看,谢谢。

function  [x,k,err,P]=Iteration(f,x0,tol,n)
% Iteration.m为用迭代法求非线性方程的解
% f为给定的迭代函数;x0为给定的初始值;
% tol为给定的误差界;n为所允许的最大迭代次数
% k为迭代次数;x为不动点的近似值;err为误差;
P(1)=x0;
for k=2:n
   P(k )=feval('f',P(k-1));
   k,
   err=abs(P(k)-P(k-1))
   x=P(k);
   if(err<tol)
       break;
   end
   if k==n
       disp('迭代次数超过最大次数!');
   end
end
x=P'

随便找的一个例子的代码
Iteration('sin()/x',0.5,10^(-5),20)
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sanwen2100

至尊木虫 (职业作家)

有人吗????????????

发自小木虫Android客户端
2楼2016-04-11 13:52:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

引用回帖:
2楼: Originally posted by sanwen2100 at 2016-04-11 13:52:17
有人吗????????????

建议贴原始的 非线性方程

您的代码写得的确不太好,应该是初学吧?

此外, 如果问题急迫,可以去找淘宝网店付费解决, 小木虫上做广告的有费老师编程
ส็็็็็็็็็็็็็็็็็็็็
3楼2016-04-11 14:31:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
sanwen2100: 金币+10, 有帮助 2016-04-20 13:07:42
f的类型或者调用方式,没有写正确!
Iteration('sin()/x',0.5,10^(-5),20)
上面这个写法'sin()/x',是不对的!
善恶到头终有报,人间正道是沧桑.
4楼2016-04-11 18:31:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sanwen2100

至尊木虫 (职业作家)

引用回帖:
4楼: Originally posted by wurongjun at 2016-04-11 18:31:56
f的类型或者调用方式,没有写正确!
Iteration('sin()/x',0.5,10^(-5),20)
上面这个写法'sin()/x',是不对的!

嗯呢  , 应该是f的类型或者调用方式不正确。我是个初学者,也不是很清楚该怎么改。  帖子里的这个 是个迭代的代码  书上照搬的   用来解非线性方程的  但就是运不出来

发自小木虫Android客户端
5楼2016-04-12 17:38:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sanwen2100 的主题更新
信息提示
请填处理意见