数值分析2016上机实验报告

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

序言

数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。是科学与工程计算(科学计算)的理论支持。许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。目前,试验、理论、计算已成为人类进行科学活动的三大方法。

数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。

MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。

本实验报告使用了MATLAB软件。对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。

目录

序言 (1)

问题一非线性方程数值解法 (3)

1.1 计算题目 (3)

1.2 迭代法分析 (3)

1.3计算结果分析及结论 (4)

问题二追赶法解三对角矩阵 (5)

2.1 问题 (5)

2.2 问题分析(追赶法) (6)

2.3 计算结果 (7)

问题三函数拟合 (7)

3.1 计算题目 (7)

3.2 题目分析 (7)

3.3 结果比较 (12)

问题四欧拉法解微分方程 (14)

4.1 计算题目 (14)

4.2.1 方程的准确解 (14)

4.2.2 Euler方法求解 (14)

4.2.3改进欧拉方法 (16)

问题五四阶龙格-库塔计算常微分方程初值问题 (17)

5.1 计算题目 (17)

5.2 四阶龙格-库塔方法分析 (18)

5.3 程序流程图 (18)

5.4 标准四阶Runge-Kutta法Matlab实现 (19)

5.5 计算结果及比较 (20)

问题六舍入误差观察 (22)

6.1 计算题目 (22)

6.2 计算结果 (22)

6.3 结论 (23)

7 总结 (24)

附录

问题一 非线性方程数值解法

1.1 计算题目

编写不动点迭代法求根程序:把方程010423=-+x x 写成至少四种x=g (x )的形式,取初值5.1x 0=,进行不动点迭代求根,并比较收敛性及收敛速度。

1.2 迭代法分析

将方程f (x )=0改写成其等价形式

)(x x φ=

取方程根的某一近似值x0作为初始点,由函数)(01x x φ=可计算出x 1,如此下去,设当前点为x k ,有)(x φ计算出x k+1,即

)(1k k x x φ=+ k=0,1,.....

称为迭代公式。

(收敛条件)设)(x φ在[a ,b]上有连续的一阶导数,并满足:

].,[,1)()2(;

)(],,[)1('b a x L x b x a b a x ∈∀≤≤≤≤∈∀φφ有

则有函数φ(x)在区间[a,b]上存在唯一的不动点(方程的根)x*;对任何x0属于[a,b],可由迭代公式得到序列{x k }均收敛到方程的根x*。设上述条件成立时,算法的中止条件为:

k k k x k k

x k x x L L x x x x L L x x --≤---≤-+--1*01*

11 现将方程010423=-+x x 改写成如下四种x=φ(x )形式并计算收敛性。 (1)21031k k x x -=+ 计算得φ’(x0) 不收敛 (2)321410x x k -=+

计算得φ’(x0) 不收敛 (3)k k k x x x 41021+=

+ 计算得φ’(x0) 不收敛 (4)4

101+=+k k x x 计算得φ’(x0) 收敛 1.3计算结果分析及结论

在command 窗口输入func=inline(‘φ(x)’);[y k ]=StablePoint(1.5,func) 函数相对误差为3-10*1。计算结果如下表1-1:从计算结果看到,迭代法

(2)(3)均不收敛,因为他们不满足局部收敛条件,而迭代法(4)比迭代法(1)收敛快,只需要四步就可以计算得到近似值。

在做不动点迭代时,为使误差尽可能小且数据稳定。由局部收敛性定理,在将函数f(x)化作x=φ(x )时,应尽可能构造函数使φ(x )收敛。

表1-1 迭代法计算结果

问题二追赶法解三对角矩阵2.1 问题

编写有效程序解线性方程组Ax=b,其中

2.2 问题分析(追赶法)

我们利用矩阵的直接三角分解法来推导三对角的计算公式,由系数矩阵A的特点,可以将方程分解为两个三角矩阵的乘积,即A=LU。其中L 为下三角矩阵,U为单位上三角矩阵。用追赶法求解严格占优矩阵Ax=f 等价于解两个三角方程组:①Ly=f,求y。②Ux=y,求x。从而得到解三对角方程组的追赶法公式:

1)计算{βi}的递推公式

β1=c1/b1,

Βi=ci/(bi-aiβi-1),i=2,3,4,n-1;

2)解Ly=f

y1=f1/b1,

Yi=(fi-aiyi-1)/(bi-aiβi-1),i=2,3,...,n;

3)解Ux=y

相关文档
最新文档