数值计算方法大作业--资料

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

数值计算方法大作业-

-资料

-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

计算方法大作业

学生学号: ********

学生姓名: ****

专业班级: ***********

摘要:大作业通过MATLAB在计算方法中的应用实例,探讨了MATLAB在计算方法中的应用方法和技巧,对运用计算机软件完成“计算方法”课程的图形绘制,多项式方程的求解,计算方法分析具有较好的参考价值。

关键字:MATLAB应用迭代法多项式

引言

在科学研究与工程设计中,经常会遇到数学模型的求解问题,然而在许多情况下,要获得模型问题的准确解是十分困难的,甚至是不可能的。因此,研究各种数学问题的近似解法非常重要。

数值计算方法又称计算方法或数值计算分析,是一门与计算机应用密切结合的实用性很强的数学课程。

数值计算方法提供的算法具有以下特点:

1.面向计算机,根据计算机的特点设计可行的算法。

2.有可靠的理论依据。

3.高效率。

数值计算方法既重视与方法有关的理论,又重视方法的实际运用,而且数值计算方法课程涉及的面较广泛,包括了微积分、线性代数、常微积分方程等数学问题的数值方法。所以我们只有努力的掌握这几门课程的基本内容,才能学好这门课程。

掌握数值计算方法,包括数组和数组函数,矩阵和矩阵函数的创建与操作,关系与逻辑操作符的运算,多项式计算,数据分析,以及方程与方程组的解法。掌握Matla图形和3D可视化的技术,围绕数据成图机理,绘图要旨和修饰技法熟悉各种绘图指令和交互操作工具。包括二维,三维和高维图形绘制,图形的色彩,光源和材质等效果的处理,以及图形句柄操作和动画制作技术。

Matlab数值计算,数值计算功能是Matlab最具代表性的特点,也是最基本、最重要的功能,它是备受欢迎的基石。Matlab能够成为世界上最优秀的数学软件之一和它出色的数值运算能力是分不开的。Matlab在数值运算中以数组和矩阵为基础。数组是Matlab运算中一个重要的数据组织形式。按其维数可以分为一维、二维数组和多维数组。矩阵则是Matlab的基本运算单元。

其中计算方法中的迭代法从已知有近似解计算新近似解的一种规则。计算规则不同,迭代法也就不同。下面就是我所采用迭代法计算得出的一个实例

1.产生背景:

牛顿迭代法(Newton's method )又称为牛顿-拉夫逊方法(Newton-Raphson method ),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。

2.牛顿迭代公式:

设r 是f(x) = 0的根,选取x0作为r 初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L ,L 的方程为y = f(x0)+f'(x0)(x-x0),求出L 与x 轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r 的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x 轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r 的二次近似值。重复以上过程,得r 的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r 的n+1次近似值,上式称为牛顿迭代公式。

解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数 f(x) = f(x0)+(x -x0)f'(x0)+(x -x0)^2*f''(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x -x0)=0 设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。

3.应用: 简单的迭代法

先将方程()0f x =转化为等价方程()x g x =然后从某个数0x 出发,通过计算

()1k k x g x += (k=0 , 1, 2···)

构造系列{}k x .如果()k g x 连续且这个序列收敛于*x ,则有上式可得

()**x g x =

这表序列{}k x 的极限就是方程()x g x =的根,此时对于给定的允许误差,只要k 适当大,k x 就可作为方程的根,*x 满足精度要求的近似值。这种求误差的方法称为:简单迭代法。其中()g x 称为迭代函数,0x 称为根的初始近似值,k x 称为根的k 次的近似值,计算公式()1k k x g x +=称为迭代公式或迭代过程。 例2:(见课本15页)

用迭代法求方程()310f x x x =--=的根

由上图可以看出,曲线y=3

x 与直线1y x =+只有一个交点,其横坐标介于1和2之间,故方程有唯一实根*x ∈[]1,2.如将原方程转化为等价方程

31x x =+则相应的迭代公式为

311k k x x +=+取0x =,计算结果如下:

迭代公式

1k x +=

3

11k k x x +=-

0x

1.5 1.5

1x 1.35721 2.375 2x 1.33086 12.3965 3x 1.32588 1904.01 4x 1.32494 96.9025210⨯ 5x 1.32476 … 6x 1.32473 … 7x 1.32472 … 8x 1.32472

… 从计算结果看,可以认为得到的迭代序列是收敛的,且8 1.32472x =是方程*x 的一个较好的近似值。需要指出的是,将方程()0f x =改写成()x g x =的形式不是唯一的,这将影响到迭代法的收敛性,如例2中的方程也可以转化为等价方程

31x x =-

此时相应的迭代公式是

3

11k k x x +=-

如仍取00.5x =,由表可以看的迭代序列发散。

因此,在使用迭代法求方程的近似值时,首先要考虑一个问题是:如何选取迭代函数()k g x ,是迭代过程()1k k x g x += (k=0 , 1, 2···)

利用牛顿(Newton )迭代法求解多项式:

4325.410.568.954 2.79510x x x x -+-+=的所有实零点。

程序如下:

format long g ; x0=; i=1;

x1=x0-(x0^*x0^3+*x0^*x0+*(4*x0^*x0^2+*/((4*x0^*x0^2+*^2-(x0^*x0^3+*x0^*x0+*(12*x0^*x0+); while abs(x1-x0)> x0=x1;

相关文档
最新文档