求函数零点matlab代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、%用牛顿法求f(x)=x-sin x 的零点,e=10^(-6)

disp('牛顿法')

i=1;

n0=180;

p0=pi/3;

tol=10^(-6);

for i=1:n0

p=p0-(p0-sin(p0))/(1-cos(p0));

if abs(p-p0)<=10^(-6)

%disp('|p-p0|=')

%disp(abs(p-p0))

disp('用牛顿法求得方程的根为')

disp(p);

disp('迭代次数为:')

disp(i)

break;

end

p0=p;

end

if i==n0

disp(n0)

disp('次计算后无法求出方程的解')

end

2、%用求重根的方法求f(x)的零点

disp('求重根方法一');

p0=pi/3;

for i=1:n0 p=p0-((p0-sin(p0)).*(1-cos(p0)))./((1-cos(p0)).^2-(p0-sin(p0)).*s

in(p0));

if(abs(p-p0)

disp('用求重根的方法一求得方程的根p=')

disp(p)

disp('迭代次数为:')

disp(i)

break;

else

p0=p;

end

end

if i==n0&&~(abs(p-p0)

disp(n0)

disp('次迭代后没有用求重根的方法求出方程的根')

end

3、%用求重根的方法求f(x)的零点

disp('求重根方法二');

p0=pi/3;

for i=1:n0

p=p0-1*(p0-sin(p0))/(1-cos(p0));

if(abs(p-p0)

disp('用求重根的方法二求得方程的根p=') disp(p)

disp('迭代次数为:')

disp(i)

break;

end

p0=p;

end

if i==n0&&~(abs(p-p0)

disp(n0)

disp('次迭代后没有求出方程的根')

end

相关文档
最新文档