数值计算方法Matlab实验报告
班级: 学号: 姓名: 成绩:
实验2 非线性方程的数值解法实验
1实验目的
1)进一步熟练掌握求解非线性方程的牛顿迭代法和弦截法。
2)根据牛顿迭代法和弦截法的原理,编写程序求解非线性方程,提高编程解决问题的能力。
2 实验内容
(1)用牛顿法和割线法求下列方程的根
x^2-e^x=0; x*e^x-1=0; (2)用牛顿迭代法求平方根,计算5 3实验原理
(1)牛顿迭代公式:xk?1?xk?f(xk)/f'(xk)
双点弦法公式:xk?1?xk?f(xk)(xk?xk?1)
f(xk)?f(xk?1)(2)令f(x)?x2?A,再用牛顿法求根。
4实验步骤
1)根据牛顿迭代法,双点弦法的算法编写相应的求根函数; 2)用牛顿迭代法和双点弦法分别对方程进行求解;
5 程序设计 牛顿迭代法
x0=1.0; N=100; k=0;
数值计算方法Matlab实验报告
eps=5e-6; delta=1e-6; while(1)
x1=x0-fc1(x0)/fc2(x0); k=k+1; if k>N
disp('Newton method failed') break end
if(abs(x1-x0) fprintf('%f',x0) fprintf('%f',abs(fc1(x1))) 双点弦法 function cutline(x0,x1) N=100; k=0; delta=5e-8; while(1) (abs(x1-x0)>=delta) c=x1; x1=cutnext(x0,x1); x0=c; k=k+1; if k>N disp('Cutline method failed') break; end if(abs(x1-x0) fprintf('f\\n',x1); function y=cutnext(a,b) y=b-fc(b)/(fc(b)-fc(a))*(b-a); 数值计算方法Matlab实验报告 1) 原函数 function fc1=fc1(x) fc1=x^2-exp(x); end 导函数 function fc2=fc2(x) fc2=2*x-exp(x); end 2)原函数 导函数 3)原函数 导函数 6实验结果及分析 方程 牛顿迭代法结果 牛顿法迭代次数 弦截法结果 弦截法迭代次数 x^2-e^x=0 x*e^x-1=0 x2?5?0 注:牛顿迭代法由于设置delta=1e-6,所以算出的误差e<1.0*10^-6; 割线法由于设置delta=5e-8,所以误差e<5.0*10^-8. 7总结