西南交通大学数值分析上机实验报告

时间:2024.3.19

数值分析

上机实习报告

                       号:

                       名:

                       业:

                   联系电话:  

                   任课教师:


序.................................................................................................................................... 1

一、必做题...................................................................................................................... 2

1、问题一................................................................................................................. 2

1.1 问题重述...................................................................................................... 2

1.2 实验方法介绍............................................................................................... 2

1.3 实验结果...................................................................................................... 3

2、问题二................................................................................................................. 5

2.1 问题重述...................................................................................................... 5

2.2 实验原理...................................................................................................... 5

雅各比算法:将系数矩阵A分解为:A=L+U+D,则推到的最后迭代公式为:.... 6

2.3 实验结果...................................................................................................... 6

二、选做题...................................................................................................................... 7

3、 问题三............................................................................................................... 7

3.1 问题重述...................................................................................................... 7

3.2 实验原理...................................................................................................... 7

3.3 实验结果...................................................................................................... 7

总 结............................................................................................................................... 8


伴随着计算机技术的飞速发展,所有的学科都走向定量化和准确化,从而产生了一系列的计算性的学科分支,而数值计算方法就是解决计算问题的桥梁和工具。数值计算方法,是一种研究并解决数学问题的数值近似解方法,是在计算机上使用的解数学问题的方法。为了提高计算能力,需要结合计算能力与计算效率,因此,用来解决数值计算的软件因为高效率的计算凸显的十分重要。

数值方法是用来解决数值问题的计算公式,而数值方法的有效性需要根据其方法本身的好坏以及数值本身的好坏来综合判断。数值计算方法计算的结果大多数都是近似值,但是理论的严密性又要求我们不仅要掌握将基本的算法,还要了解必要的误差分析,以验证计算结果的可靠性。数值计算一般涉及的计算对象是微积分,线性代数,常微分方程中的数学问题,从而对应解决实际中的工程技术问题。

在借助MATLAB、 JAVA、 C++ 和VB软件解决数学模型求解过程中,可以极大的提高计算效率。本实验采用的是MATLAB软件来解决数值计算问题。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,其对解决矩阵运算、绘制函数/数据图像等有非常高的效率。

本文采用MATLAB对多项式拟合、雅雅格比法与高斯-赛德尔迭代法求解方程组迭代求解,对Runge-Kutta 4阶算法进行编程,并通过实例求解验证了其可行性,使用不同方法对计算进行比较,得出不同方法的收敛性与迭代次数的多少,比较各种方法的精确度和解的收敛速度。

2014数值分析作业

一、必做题

1、问题一 

1.1 问题重述

1.1.1 实验数据

某过程涉及两变量x 和y, 拟分别用插值多项式和多项式拟合给出其对应规律的近似多项式,已知xi与yi之间的对应数据如下,xi=1,2,…,10

yi = 34.6588   40.3719   14.6448  -14.2721  -13.3570   24.8234   75.2795

  103.5743   97.4847   78.2392

下列数据为另外的对照记录,它们可以作为近似函数的评价参考数据。

xi =

  Columns 1 through 7

    1.5000    1.9000    2.3000    2.7000    3.1000    3.5000    3.9000

  Columns 8 through 14

    4.3000    4.7000    5.1000    5.5000    5.9000    6.3000    6.7000

  Columns 15 through 17

    7.1000    7.5000    7.9000

yi =

  Columns 1 through 7

   42.1498   41.4620   35.1182   24.3852   11.2732   -1.7813  -12.3006

  Columns 8 through 14

  -18.1566  -17.9069  -11.0226    2.0284   19.8549   40.3626   61.0840

  Columns 15 through 17

   79.5688   93.7700  102.3677

1.1.2 实验内容

(1)用次数分别为3,4,5,6的多项式拟合并给出最好近似结果f(x)。

(2)用插值多项式给出最好近似结果

1.2 实验方法介绍

1.2.1 多项式拟合

在MATLAB中,提供了polyfit函数来计算多项式拟合系数,其设定曲线拟合的目标是最小二乘法(或被称为最小方差),polyfit的函数调用格式是:

[p,s,mu]=ployfit(x,y,n)

其中,x 和y表示的是已知的数据,n是多项式拟合阶数。通过最小二乘法原理得到的拟合曲线多项式是:

1.2.2 拉格朗日插值法

拉格朗日插值法是利用拉格朗日基函数来进行拟合:

拉格朗日基函数

     利用拉格朗日基函数,构造多项式

为拉格朗日差值多项式。

1.3 实验结果

1.3.1 最小二乘多项式拟合结果

(1)各次拟合结果系数

3次多项式系数:-1.0326   19.3339   -94.4787   131.7944

4次多项式系数:-0.3818    7.3680   -42.1433   73.5334    0.7450

5次多项式系数: 0.0981   -3.0789   34.5020   -163.5107   304.7282       -139.5019

6次多项式系数:0.0194   -0.5408    5.1137   -16.8973   -0.8670   66.3750   -18.6991

(2)绘制拟合曲线

利用MATLAB调用函数ployfit来进行绘图,程序代码(见附录1),绘制的

3、4、5、6阶拟合图像如下图1所示:

1.3.2 拉格朗日插值拟合结果

(1)拟合的系数

根据拉格朗日的计算原理,编写程序见附录。运行得到的结果如下表1所示:

表1 拉格朗日插值运算结果

(2)拟合的图像

    运行程序可以得到:拉格朗日插值拟合的图像如下图2所示:

图2 拉格朗日插值拟合图像

2、问题二

2.1 问题重述

2.1.1 实验数据

(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4]; b1=[-3,2,4]Tb2=[100,-200,345]T

(2) A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1]Tb2=[5,0,-10]T

(3)A行分别为A1=[1,3],A2=[-7,1];b1=[4,6]T

2.1.2 实验内容

用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b1Ax=b2,研究其收敛性。上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。

2.2 实验原理

根据题目要求,分别用雅克比迭代和高斯—赛德尔迭代的方法解方程组Ax=b1Ax=b2

迭代法是将方程组Ax=b转化为x=Bx+f,构成了迭代格式:

x (k +1) = Bxk + f   k = 0,1,2....n

反复适用该式子,产生了{x k}的向量序列,如果这个向量序列收敛于x *,则有x *是方程组的解。因此,根据精度的要求选择一个合适的x k作为近似解。这就是线性方程组的迭代法。

雅各比算法:将系数矩阵A分解为:A=L+U+D,则推到的最后迭代公式为:

x= -D-1( L+ U)x(k)+D-1 b

其中,迭代矩阵为BJ= -D-1 (L+ U )

高斯-塞德尔方法:是从雅各比演变而来的,其矩阵形式为

x(k+1)=-D-1( Lx(k+1)+ Ux(k))+D-1b

其中,高斯-塞德尔迭代矩阵BG=-(D+L)-1U

2.3 实验结果

(1)在问题1中,有:

       对矩阵A进行操作可计算得

 

计算矩阵的谱半径可知,所以迭代收敛。之后利用MATLAB编程得到的计算结果如下表2所示:

表 2 雅格比法的迭代结果

表 3 高斯-赛德尔迭代法的迭代结果

从表2和3可知,理论分析结果与程序结果一致,利用雅格比法,方程1在迭代16次后收敛;方程2在迭代了23次收敛。利用高斯-赛德尔法,方程1在迭代10次后收敛;方程2在迭代了15次收敛。从中可以看出高斯赛德尔法的迭代速度比雅格比法的迭代次数快。

(2)对于问题2有:

       对矩阵A进行操作可计算得

 

计算矩阵的谱半径可知,所以迭代也收敛。调用编写函数对问题2进行求解,其中最大迭代次数设为2000,精度要求设为0.0001,初始迭代值设为(0,0,0)

表4 问题2雅格比法的迭代结果

表5 问题2高斯赛德尔的迭代结果

从表 4和5可知,高斯赛德尔法只用了很少的参数就得到了迭代结果,但是雅格比法却得到不收敛的结果,从这两个方程的迭代次数来说,b值不同,其迭代的次数不一样,但是迭代是否收敛于b值大小无关。

(3)在问题3中,有:

       对矩阵A进行操作可计算得

 

计算矩阵的谱半径可知,所以迭代不收敛。调用MATLAB程序中函数对问题3进行求解,其中最大迭代次数设为2000,精度要求设为0.0001,初始迭代值设为(0,0,0)可得下表 6。

表6 问题3雅格比的迭代结果

表7 问题3高斯赛德尔的迭代结果

从表 1?13可知,理论分析结果与程序结果一致,方程迭代到最大次数时均没有收敛。

实验结果分析:从问题1,2,3的实验结果,我们可以总结出,雅格比法只在问题1的求解过程中有作用,而高斯-赛德尔法不仅能解决问题1,而且还能解决问题2,所以高斯-赛德尔法的使用范围比雅格比法更广泛。方程组的右端系数对两种方法有一定得影响,在初始条件,精度要求相同的条件下可以看出,右端系数越大,得到所需解的迭代次数越多;在同等条件下,高斯赛德迭代法较雅格比迭代法,其收敛速度更快;在某些情况下,雅格比法不能找到方程组的解,而高斯—赛德迭代法能够找到方程组的解。

二、选做题

3、问题三

3.1 问题重述

给定函数,及节点,求其三次样条插值多项式(可取I型或II型边界条件),并画图及与的图形进行比较分析。

3.2 实验原理

利用样条函数进行插值,即取插值函数为样条函数,称为样条插值。已知函数y = f (x)在区间[a, b]上的n +1个节点a = x0<x1<… < xn = b上的值yj=f (xj)(j=0,1,…,n),求插值函数S (x)使其满足:

(1)S(xj)=yj(j=0,1,…,n);

(2)在每小区间[xj,xj+1](j=0,1,…,n-1)上S (x)是三次多项式,记为Sj (x);

(3)S (x)在[a, b]上二阶连续可微。

则S (x)称为f (x)的三次样条插值函数,它通过上述给定点,为二阶连续可导的分段三次多项式函数。

3.3 实验结果

采用三弯矩法来进行三次样条插值,取II型边界条件,令插值函数在两个端点处的二阶导数:M0Mn值为0。由于得到的线性方程组系数矩阵为三对角阵,因此在求解线性方程组时采用追赶法,得到结果如下图3所示。

图3 三次样条插值函数图

从图中可以看出,使用三弯矩法对此函数进行拟合,精确度很高,结果准确。

总 结

通过本次实验,我意识到了编程在数值分析实验中的重要性,理论知识不仅能有了很大的理解提升,而且自身的编程能力也有了很大的进步。

在本次实验中,我接触了MATLAB软件,并学习了基础的一些编程语言,我也深深的意识到,想学习好专业课,想发表高端论文,学习MATLAB软件的数值分析应用是十分重要的。而在MATLAB编程过程中,我对函数的定义、调用等有了更深一步地了解。

这三个实验,我了解到了多次拟合的实现方法、雅格比和高斯-赛德尔迭代法以及三次样条插值的MATLAB实现方法。本来在学习数值分析的过程中,我在理解方面存在一些偏差,但是通过本次实验,我深切的认识到了,对问题的根本理解是十分重要的,看问题要看到本质,从根本上推断从而理解问题的本质。

最后,感谢谢灵红老师一学期的谆谆教导,感谢学校给我们学习这门数学课的机会。在用数值分析分析问题的过程中,我有了很多的收获,我也认识到了这门课的重要性,相信,这门课的学习将会对我研究生生活的学习有很大的提升,对我日后写论文以及解决工作问题有很大帮助。

感谢这一学期以来,帮助我学习MATLAB软件的师兄师姐,因为第一次做这种编程问题,所以难免会有一些不完善和错误,希望老师给予理解,谢谢!

更多相关推荐:
哈工大-数值分析上机实验报告

实验报告一题目非线性方程求解摘要非线性方程的解析解通常很难给出因此线性方程的数值解法就尤为重要本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法前言目的和意义掌握二分法与Newton法的基...

数值分析实验报告(一)(完整)

数值分析实验报告123456

数值分析实验报告(包含源程序)

课程实验报告课程实验报告课程实验报告课程实验报告

数值分析实验报告

数值分析实验报告数值分析实验报告一实验名称在matlab上实现牛顿插值和拉格朗日差值二实验内容1运用点2170112217构造三次拉格朗日插值多项式并计算f062运用已知点2170112219构造牛顿插值函数并...

数值分析实验报告册

数值分析实验报告册实验名称Lagrange插值实验一实验目的掌握Lagrange插值数值算法能够根据给定的函数值表达求出插值多项式和函数在某一点的近似值实验准备1在开始本实验之前请回顾教科书的相关内容2需要一台...

数值分析matlab完整版实验报告

数值分析报告运用Matlab求解非线性方程的根学院专业班级姓名学号数值分析报告1目的掌握非线性方程求根的方法并选取实例运用MATLAB软件进行算法的实现分别用牛顿法弦截法和抛物线法求非线性方程的根2报告选题报告...

矩阵与数值分析上机实验报告

大连理工大学矩阵与数值分析上机实验报告任课教师孟兆良教学班号06院系电信计算机应用学生姓名邓会杰学生学号21306151目录实验一设SNj2N106分别编制从小到大和从大到小的顺序程序分别计算3j211程序代码...

贵州大学20xx级数值分析实验报告

本次作业共七道题第一道大题有三个小题按三道题算程序加载了StanfordCPPLiblib库主要利用gridh类似二维数组vectorh类似一维数组目的是使程序更通用安全方便编程1householder变换程序...

数值分析上机实验报告二

西安工程大学数值计算方法实验报告实验报告二题目如何求解插值函数摘要在工程测量和科学实验中所得到的数据通常都是离散的如果要得到这些离散点意外的其他点的数值就需要根据这些已知数据进行插值这里我们将采用多种插值方法前...

武汉大学数学与统计学院 数值分析实验报告

武汉大学数学与统计学院数值分析实验报告武汉大学数学与统计学院数值分析原始书记记录实验名称关于正定矩阵cholesky分解的研究实验时间20xx年12月16日姓名雷锦江邢周华学号20xx3100017420xx3...

数值分析上机实验

目录1绪论12实验题目一221题目要求222NEWTON插值多项式323数据分析4231NEWTON插值多项式数据分析4232NEWTON插值多项式数据分析624问答题625总结73实验题目二831题目要求83...

数值分析上机实验报告七

西安工程大学数值计算方法实验报告实验报告七题目线性方程组的直接解法摘要在数值计算中关于线性方程组的解法有两类直接法和迭代法本实验研究线性方程组的直接解法前言目的和意义掌握线性方程组的直接解法如高斯消去法LU解法...

数值分析上机实验报告(38篇)