计算方法上机实验报告 下载本文

内容发布更新时间 : 2024/6/20 3:13:36星期一 下面是文章的全部内容请认真阅读。

《计算方法》上机实验报告

班 级: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 -