编写一函数实现用牛顿迭代法求方程ax3+bx2+cx+d=0在x=1附近的一个实根。主函

 我来答
袁怡圃
2009-04-27 · TA获得超过950个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:0
展开全部
建立m文件:

function [result ,k] = newton(fun,x0,e)

% 调用形式:
% [x k] = newton(fun,x0,e)
% 功能:
% 用差商求导的牛顿法求解一元非线性方程的根
% 输入:
% -- fun 字符串,f(x)的表达式,以x作为自变量,以字符串形式输入
% -- x0 标量,求解的起始点
% -- e 标量,精度要求
% 输出:
% -- x 标量,所求得的解
% -- k 标量,求解过程的迭代次数
% 袁怡圃,2003/4/3

m = x0;
h=0.000001;
f=inline(fun,'x');

k=0;
f0=feval(f,m);
f2=feval(f,m+h);
f1=feval(f,m-h);
n=m-2*h*f0/(f2-f1);

while abs(1-m/n)>e
m=n;
f0=feval(f,m);
f2=feval(f,m+h);
f1=feval(f,m-h);
n=m-2*h*f0/(f2-f1);
k=k+1;
if k>999
break
end
end
if k==1000
disp('没找到方程的根!');
result = 'zero';
else
result = n;
end

在命令窗口输入:
fun = '2*x^3+x^2-3*x+4=0';
x0 = 1;
[result ,k] = newton(fun,x0,0.00001)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
monkeyyyp
2009-04-27 · TA获得超过165个赞
知道答主
回答量:460
采纳率:0%
帮助的人:0
展开全部
用MATLAB,具体编程我忘了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式