《计算方法》上机实验报告
班 级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX
XXXXXXX
任课教师:XXX
二〇一八年五月二十五日
前言
通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton迭代法、Jacobi迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB程序的编写。
以下为本次上机实验报告,按照实验内容共分为六部分。
实验一:
一、实验名称及题目: Newton迭代法
例2.7(P38):应用Newton迭代法求 在 附近的数值解 ,并使其满足 . 二、解题思路:
设x'是f(x)?0的根,选取x0作为x'初始近似值,过点?x0,f(x0)?做曲线y?f(x)的切线L,L的方程为y?f(x0)?f'(x0)(x?x0),求出L与x轴交点的横坐标x1?x0?f(x0),称x1为x'的一次近似值,过点(x1,f(x1))做f'(x0)f(x1)称x2为x'f'(x1)曲线y?f(x)的切线,求该切线与x轴的横坐标x2?x1? - 2 -
的二次近似值,重复以上过程,得x'的近似值序列?xn?,把
xn?1?xn?f(xn)称为x'的n?1次近似值,这种求解方法就是牛顿迭代法。 f'(xn)三、Matlab程序代码:
function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1;
f1=diff(f);%求导 y=subs(f,z,x0);
y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1;
while abs(x1-x0)>=tol x0=x1;
y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end
x=double(x1) K
四、运行结果:
实验二:
- 3 -