matlab牛顿迭代法程序为什么运行不了 5

这是我弄得matlab牛顿迭代法的运行程序,为什么运行不了???求指教。function[x_star,index,it]=NNewton(f,x,ep,it_max)%... 这是我弄得matlab牛顿迭代法的运行程序,为什么运行不了???求指教。

function[x_star,index,it]=NNewton(f,x,ep,it_max)
% 求解非线性方程的Newton法,其中:
% fun(x)为需要求根的函数,有两个分量,第一个是函数值,第二个是导数值;
% x为初始点;
% ep为精度要求,当|x(k)-x(k-1)|<ep时,算法终止计算,缺省值为le-5;
% it_max为最大迭代次数,缺省值为100;
% x_star为当迭代成功时,输出方程的根,当迭代失败时,输出最后的迭代值;
% index为指标变量,当index=1时,表明迭代成功,当index=0时,表明迭代失败;
% it为迭代次数。
if nargin<4
it_max=100;
end
if nargin<3
ep=le-5;
end
index='不成功';
k=1;

while k<=it_max
x1=x;
ff=feval(f,x);
f1=diff(f,x,1);
f2=diff(f,x,2);
if abs(f2)<ep
break;
end
x=x1-f1/f2;
if abs(x-x1)<ep
index='成功';break;
end
k=k+1;
end
x_star=x;it=k;
展开
 我来答
百度网友3c63e6c
2014-11-18 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2771万
展开全部
你运行的时候给输入参数了么?
追问
输入参数了,我测试的时候好像到f1=diff(f,x,1);f2=diff(f,x,2);就运行不了了.这是matlab GUI界面设计中的牛顿法函数,我在界面里设置的参数x为2,ep为0.000001,it-max为20,方程f为x^3-3x-1.
追答
判断是因为你的f这个函数没有被识别,你如果从界面设置,首先输入都是字符,不是数字,你要进行转换。特别的,你的f要转换为符号函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式