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