数值分析课程设计(最终版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文主要通过Matlab 软件,对数值分析中的LU 分解法、最小二乘法、复化Simpon 积分、Runge-Kutta 方法进行编程,并利用这些方法在MATLAB 中对一些问题进行求解,并得出结论。
实验一线性方程组数值解法中,本文选取LU 分解法,并选取数据于《数值分析》教材第5章第153页例5进行实验。所谓LU 分解法就是将高斯消去法改写为紧凑形式,可以直接从矩阵A 的元素得到计算L 、U 元素的递推公式,而不需要任何步骤。用此方法得到L 、U 矩阵,从而计算Y 、X 。
实验二插值法和数据拟合中,本文选取最小二乘拟合方法进行实验,数据来源于我们课堂学习该章节时的课件中的多项式拟合例子进行实验。最小二乘拟合是一种数学上的近似和优化,利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。利用excel 的自带函数可以较为方便的拟合线性的数据分析。
实验三数值积分中,本文选取复化Simpon 积分方法进行实验,通过将复化Simpson 公式编译成MATLAB 语言求积分∫e ;x dx 1
0完成实验过程的同时,也对复化Simpon 积分章节的知识进行了巩固。
实验四常微分方程数值解,本文选取Runge-Kutta 方法进行实验,通过实验了解Runge-Kutta 法的收敛性与稳定性同时学会了学会用Matlab 编程实现Runge-Kutta 法解常微分方程,并在实验的过程中意识到尽管我们熟知的四种方法,事实上,在求解微分方程初值问题,四阶法是单步长中最优秀的方法,通常都是用该方法求解的实际问题,计算效果比较理想的。
实验五数值方法实际应用,本文采用最小二乘法拟合我国2001年到2015年的人口增长模型,并预测2020年我国人口数量。
关键词:Matlab ;LU 分解法;最小二乘法;复化Simpon 积分;Runge-Kutta
一.LU分解法 (1)
1.1实验目的 (1)
1.2基本原理 (1)
1.3实验内容 (2)
1.4数据来源 (3)
1.5实验结论 (3)
二.Lagrange插值 (4)
2.1实验目的 (4)
2.2基本原理 (5)
2.3实验内容 (5)
2.4数据来源 (6)
2.5实验结论 (6)
三.复化simpon积分 (7)
3.1实验目的 (7)
3.2基本原理 (7)
3.3实验内容 (7)
3.4数据来源 (8)
3.5实验结论 (8)
四.Runge-Kutta方法 (9)
4.1实验目的 (9)
4.2基本原理 (9)
4.3实验内容 (10)
4.4数据来源 (11)
4.5实验结论 (11)
五.数值方法实际应用 (11)
5.1实验目的 (11)
5.2基本原理 (12)
5.3实验内容 (12)
5.4数据来源 (13)
5.5实验结论 (13)
总结 (16)
参考文献 (17)
一.LU 分解法
1.1实验目的
[1] 了解LU 分解法的基本原理和方法;
[2] 通过实例掌握用MATLAB 求线性方程组数值解的方法; [3] 编程实现LU 分解
1.2基本原理
对于矩阵A ,若存在一个单位下三角矩阵L 和一个上三角U ,使得A =LU (1.1)。
即[a 11
⋯a 1n ⋮⋱⋮a n1
⋯a nn ]=[1⋯
0⋮⋱⋮l n1
⋯
1][u 11⋯u 1n
⋮⋱⋮0
⋯
u nn
] (1.2) 称上述分解为矩阵A 的LU 分解,也称为直接三角分解。
在式(1.2)中,利用矩阵L 的第一行与矩阵U 的各列相乘,可以得到矩阵U 的第1行u 1j =a 1j (j =1,2,…,n) (1.3)。利用矩阵L 的各行与矩 阵U 的第1列相乘,得到矩阵L 的第1列l i1=a
i1u i1
(i =2,3,…,n) (1.4)。
假设已确定出矩阵U 的第1行到第k-1行与矩阵L 的第1列到第k-1列,现在来求矩阵U 的第k 行和L 的第k 列。
利用式(1.2)中矩阵L 的第k 行与矩阵U 的第j(j ≥k) 列相乘, 得到矩阵U 的第k 行u kj =a kj −∑l kq u qj k;1q<1 (j =k,k +1,…,n) (1.5) 。利用矩阵 L 的第i(i >k)行与矩阵U 的第k 列相乘,得到矩阵L 的第k 列
l ik =(a ik −∑l iq u qk )/u kk k;1q<1 (i =k +1,k +2,…,n ) (1.6)。显然,式(1.5)和式(1.6)对于k=2,3,…,n 都成立。
若矩阵A 有分解:A=LU ,其中L 为单位下三角阵,U 为上三角阵,则称该分解为LU 分解,可以证明,当A 的各阶顺序主子式均不为零时,LU 分解可以实现并且唯一。
1.3实验内容
(1)算法设计
由式(1.1),将方程组Ax=b改写为L(Ux)=b则方程组求解可分成两部分完成。令y=Ux,则方程组可改写成方程组Ly=b和Ux=y由上式得到
y k=b k−∑l kj y j
k;1
j<1
(k=1,2,…,n)
x k=(y k−∑u kj x j
n
j ) u kk (k=n,n−1, (1) (2)利用MATLAB编写代码 矩阵的LU分解: function[L,U,index]=LU_Decom(A) [n,m]=size(A); if n~=m error('The rows and columns of matrix A must be equal!'); return; end L=eye(n);U=zeros(n);index=1; for k=1:n for j=k:n z=0; for q=1:k-1 z=z+L(k,q)*U(q,j); end U(k,j)=A(k,j)-z; end if abs(U(k,k)) index=0;return; end for i=k+1:n