《数值分析》第六章实验报告

合集下载

数值分析实验报告

数值分析实验报告

数值分析实验报告【引言】数值分析是一门研究利用计算机和数学方法解决实际问题的学科,它在工程、科学和经济领域中有着广泛的应用。

在这个实验报告中,我将分享我在数值分析实验中的一些发现和结果。

【实验目的】本次实验的目的是通过数值方法对给定的问题进行求解,并分析数值方法的精确性和稳定性。

我们选择了经典的插值和数值积分问题来进行实验。

【实验过程】在插值问题中,我使用了拉格朗日插值和样条插值两种方法。

通过使用已知的数据点,这些方法能够通过构造多项式函数来逼近原始函数,从而能够在未知点上进行预测。

通过比较两种插值方法的结果,我发现拉格朗日插值在低维数据上表现更好,而样条插值在高维数据上更能保持插值曲线的平滑性。

在数值积分问题中,我使用了复合梯形公式和复合辛普森公式来进行数值积分。

这两种方法可以将复杂的区间上的积分问题转化为对若干个小区间进行数值积分的问题。

实验结果表明,复合辛普森公式在使用相同的步长时,其数值积分结果更为精确。

【实验结果】我以一个实际问题作为例子来展示实验结果。

问题是计算半径为1的圆的面积。

通过离散化的方法,我将圆划分为多个小的扇形区域,并使用数值积分方法计算每个扇形的面积。

最后将每个扇形的面积相加,即可得到圆的近似面积。

通过调整离散化的精度,我发现随着扇形数量的增加,计算得到的圆的面积越接近真实的圆的面积。

在插值问题中,我选择了一段经典的函数进行插值研究。

通过选择不同的插值节点和插值方法,我发现当插值节点越密集时,插值结果越接近原函数。

同时,样条插值方法在高阶导数连续的情况下能够更好地逼近原始函数。

【实验总结】通过这次实验,我对数值分析中的插值和数值积分方法有了更深入的理解。

我了解到不同的数值方法在不同的问题中有着不同的适用性和精确度。

在实际应用中,我们需要根据具体问题选择合适的数值方法,并进行必要的数值计算和分析,以获得准确可靠的结果。

总的来说,数值分析作为一种重要的工具和方法,在科学研究和工程实践中具有广泛的应用,并且不断发展和创新。

数值分析实验 实验报告

数值分析实验 实验报告

数值分析实验实验报告数值分析实验实验报告一、引言数值分析是一门研究如何利用计算机对数学问题进行数值计算和模拟的学科。

在实际应用中,数值分析广泛应用于工程、物理、金融等领域。

本实验旨在通过实际操作,探索数值分析方法在实际问题中的应用,并通过实验结果对比和分析,验证数值分析方法的有效性和可靠性。

二、实验目的本实验的主要目的是通过数值分析方法,解决一个实际问题,并对比不同方法的结果,评估其准确性和效率。

具体来说,我们将使用牛顿插值法和拉格朗日插值法对一组给定的数据进行插值,并对比两种方法的结果。

三、实验步骤1. 收集实验数据:我们首先需要收集一组实验数据,这些数据可以来自实验测量、调查问卷等方式。

在本实验中,我们假设已经获得了一组数据,包括自变量x和因变量y。

2. 牛顿插值法:牛顿插值法是一种基于差商的插值方法。

我们可以通过给定的数据点,构造一个插值多项式,并利用该多项式对其他点进行插值计算。

具体的计算步骤可以参考数值分析教材。

3. 拉格朗日插值法:拉格朗日插值法是另一种常用的插值方法。

它通过构造一个满足给定数据点的多项式,利用该多项式对其他点进行插值计算。

具体的计算步骤也可以参考数值分析教材。

4. 结果比较与分析:在完成牛顿插值法和拉格朗日插值法的计算后,我们将比较两种方法的结果,并进行分析。

主要考虑的因素包括插值误差、计算效率等。

四、实验结果在本实验中,我们选取了一组数据进行插值计算,并得到了牛顿插值法和拉格朗日插值法的结果。

经过比较和分析,我们得出以下结论:1. 插值误差:通过计算插值点与实际数据点之间的差值,我们可以评估插值方法的准确性。

在本实验中,我们发现牛顿插值法和拉格朗日插值法的插值误差都较小,但是拉格朗日插值法的误差稍大一些。

2. 计算效率:计算效率是衡量数值分析方法的重要指标之一。

在本实验中,我们发现牛顿插值法的计算速度较快,而拉格朗日插值法的计算速度稍慢。

五、实验结论通过本实验,我们对数值分析方法在实际问题中的应用有了更深入的了解。

《数值分析》第六章实验报告

《数值分析》第六章实验报告

U= 1.0120 0 0 -2.1320 -0.3955 0 3.1040 -0.4737 -8.9391
index = 1 >> L= 1.0000 -0.6869 0.3260 0 1.0000 -0.2142 0 0 1.0000 [L,U,P]=lu(A)
U= 3.1040 0 0 -7.0130 -0.7209 0 0.0140 -7.0034 1.5990
在命令行窗口中运行如下 >> A=[2 -1 1;3 3 9;3 3 5];[L,U,index]=LU_Decom(A) L= 1.0000 1.5000 1.5000 0 1.0000 1.0000 0 0 1.0000
U= 2.0000 0 0 -1.0000 4.5000 0 1.0000 7.5000 -4.0000
在命令窗口中运行 >> A =[3.03 -12.1 14;-3.03 12.1 -7;6.11 -14.2 21];b=[-119 120 -139]'; >> x=gauss_lie(A,b) x= 0 10.0000 0.1429 可知方程组的解为: x1=0 x2=10.0000 x3=0.1429 EXERCISE SET 6.5 P396 2、LU 分解,求 P a) A=[1 2 -1;2 4 0;0 1 -1] 编写 MATLAB 程序
8
P= 0 0 1 0 1 0 1 0 0
>> b=[1.984 -5.049 -3.895]'; >> inv(U)*inv(L)*P*b ans = 1.0000 1.0000 1.0000 可知解为 x1=1.0000 x2=1.0000 x3=1.0000

数值分析实验报告

数值分析实验报告

数值分析实验报告
一、实验背景
本实验主要介绍了数值分析的各种方法。

在科学计算中,为了求解一
组常微分方程或一些极限问题,数值分析是一种有用的方法。

数值分析是
一种运用计算机技术对复杂模型的问题进行数学分析的重要手段,它利用
数学模型和计算机程序来解决复杂的数学和科学问题。

二、实验内容
本实验通过MATLAB软件,展示了以下几种数值分析方法:
(1)拉格朗日插值法:拉格朗日插值法是由法国数学家拉格朗日发
明的一种插值方法,它可以用来插值一组数据,我们使用拉格朗日插值法
对给定的点进行插值,得到相应的拉格朗日多项式,从而计算出任意一个
点的函数值。

(2)最小二乘法:最小二乘法是一种常用的数据拟合方法,它可以
用来拟合满足一定函数的点的数据,它的主要思想是使得数据点到拟合曲
线之间的距离的平方和最小。

(3)牛顿插值法:牛顿插值法是一种基于差商的插值方法,它可以
用来插值一组数据,可以求得一组数据的插值函数。

(4)三次样条插值:三次样条插值是一种基于三次样条的插值方法,它可以用来对一组数据进行插值,可以求得一组数据的插值函数。

三、实验步骤
1.首先启动MATLAB软件。

数值分析实验报告

数值分析实验报告

《数值分析》实验报告2019年5月一、问题的提出由于计算机的实质计算是在一个有限的浮点数集合上进行的,在大量运算中的误差积累会使得计算过程出现不稳定,通过实验深入了解高斯消元法从理论算法到数值算法,能稳定的关键是选主元。

二、实验名称运用MATLAB编程实现高斯消去法和高斯列主元消去法。

三、实验目的1、熟悉了解高斯消去法和高斯列主元消去法的算法。

2、学习MATLAB软件的功能。

四、基本原理五、实验环境操作环境:Windows实验平台:Matlab软件六、实验设计1 高斯顺序消去法(1)算例:课本p10例1(2)程序清单高斯消去法的MATLAB函数文件gauss.m如下:clcclear allA=[1,1,1;0,4,-1;2,-2,1];r=[6;5;1];[row,col]=size(A);n=row;%-------------------------------------------------------------------B=A;b=r;C=B;c=b;for i=1:n[maxi,row]=max(abs(C(:,i)));if C(row,i)<0maxi=-maxi;endB(i,:)=C(row,:);B(row,:)=C(i,:);b(i)=c(row);b(row)=c(i);B(i,:)=B(i,:)/maxi;b(i)=b(i)/maxi;C=B;for j=i+1:nB(j,:)=B(j,:)-C(j,i)*B(i,:);b(j)=b(j)-C(j,i)*b(i);endC=B;C(i,:)=0;C(:,i)=0;c=b;end%-------------------------------------------------------------------x(n)=b(n);for i=n-1:-1:1sum=0;for j=i+1:nsum=sum+B(i,j)*x(j);endx(i)=(1/B(i,i))*(b(i)-sum);end%-------------------------------------------------------------------% Input% Ax=rdisp(' 输入 Ax=r') disp('输入矩阵 A =')disp(A)disp(' r =')disp(r)% Output% Bx=bdisp(' 输出 Bx=b')disp(' 上三角矩阵 B =') disp(B)disp(' b=')disp(b)disp(' 求得方程组的解 :') x=x'(3)实验结果及分析:Ax=r输入矩阵 A =1 1 10 4 -12 -2 1r =651输出 Bx=b上三角矩阵 B =1.0000 -1.0000 0.5000 0 1.0000 -0.2500 0 0 1.0000b=0.50001.25003.0000求得方程组的解 :x =232 列主元消去法(1)算例:课本p10页例1(2)程序清单高斯列主元消去法的MATLAB函数文件gauss_lie.m如下:function x=gauss_lie(A,b)%采用高斯列主元法求解方程组Ax=bn=length(b);p=1:n;lu=A;y=[];for k=1:n[c,i]=max(abs(lu(k:n,k)));ik=i+k-1;if ik~=km=p(k);p(k)=p(ik);p(ik)=m;ck=lu(k,:);lu(k,:)=lu(ik,:);lu(ik,:)=ck;endif k==nbreak;lu(k+1:n,k)=lu(k+1:n,k)/lu(k,k);lu(k+1:n,k+1:n)=lu(k+1:n,k+1:n)-lu(k+1:n,k)*lu(k,k+1:n);endl=diag(ones(n,1))+tril(lu,-1);u=triu(lu);y(1)=b(p(1));for i=2:ny(i)=b(p(i))-l(i,1:i-1)*y(1:i-1)';endx(n)=y(n)/u(n,n);for i=n-1:-1:1x(i)=(y(i)-u(i,i+1:n)*x(i+1:n)')/u(i,i);endx=x';(3)实验结果及分析:>> A=[1,1,1;0,4,-1;2,-2,1];>> b=[6;5;1];>> gauss_lie (A,b);ans =13七、结果说明用消去法解方程组的基本思想都是设法消去方程组的系数矩阵A的主对角线下的元素,将AX=b化为等价的上三角形方程组,然后再通过回代过程获得方程组的解。

数值分析期末实验报告

数值分析期末实验报告

数值计算方法论文论文名称:数值计算方法期末总结学号:姓名:完成时间:摘要:数值计算方法是数学的一个重要分支,以用计算机求解数学问题的理论和方法为研究对象。

本文是我对本学期数值分析这门课程中所学到的内容以及所作的工作的总结。

通过一学期的学习,我深入学习了线性方程组的解法,非线性方程的求根方法,矩阵特征值与特征向量的计算,函数的插值方法,最佳平方逼近,数值积分与数值微分,常微分方程初值问题的数值解法。

通过陶老师课堂上的讲解和课下的上机训练,对以上各个章节的算法有了更深刻的体会。

最后做了程序的演示界面,使得程序看起来清晰明了,便于查看与修改。

通过本学期的学习。

关键词:数值计算方法、演示界面第一章前言随着电子计算机的普及与发展,科学计算已成为现代科学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。

通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。

第二章基本概念2.1算法算法是指由基本算术运算及运算顺序的规定构成的完整的解题步骤。

算法可以使用框图、算法语言、数学语言、自然语言来进行描述。

具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。

2.2 误差计算机的计算结果通常是近似的,因此算法必有误差,并且应能估计误差。

误差是指近似值与真正值之差。

绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。

误差来源见表2.1表2.1第三章泛函分析2.1泛函分析概要泛函分析(Functional Analysis)是研究“函数的函数”、函数空间和它们之间变换(映射)的一门较新的数学分支,隶属分析数学。

它以各种学科为具体背景,在集合的基础上,把客观世界中的研究对象抽象为元素和空间。

如:距离空间,赋范线性空间,内积空间。

2.2 范数范数,是具有“长度”概念的函数。

在线性代数、泛函分析及相关的数学领域,泛函是一个函数,其为矢量空间内的所有矢量赋予非零的正长度或大小。

数值分析实验报告

数值分析实验报告

数值分析实验报告实验目的:通过对数值分析实验的进行,掌握牛顿法解方程的根的求解过程和方法,通过编程实现牛顿法。

实验原理:牛顿法是一种迭代法,通过不断迭代逼近根的过程来求解方程的根。

假设f(x)在[x_0,x]中连续且有一阶连续导数,则根据泰勒展开公式,有下面的公式成立:f(x)=f(x_0)+f'(x_0)(x-x_0)+R(x)其中f(x)是方程的函数,f'(x_0)是f(x)在x_0处的导数,R(x)是无穷小量。

当x接近于x_0时,可以忽略R(x)的影响,即认为R(x)足够小可以忽略。

假设x_0是方程的一个近似根,可以得到如下的迭代公式:x_1=x_0-f(x_0)/f'(x_0)x_2=x_1-f(x_1)/f'(x_1)...在迭代的过程中,如果迭代的结果与上一次迭代的结果的误差小于设定的阈值,则可以认为找到了方程的根。

实验步骤:1.确定方程和初始近似根x_0。

2.计算f(x_0)和f'(x_0)。

3.使用迭代公式计算x的近似值x_i,直到满足终止条件(比如误差小于设定的阈值)。

4.输出计算得到的方程的根。

实验结果和分析:在实验中,我们选择了方程f(x)=x^2-2作为实验对象,初始近似根选择为x_0=1根据上述的迭代公式,可以依次计算得到x_1=1.5,x_2=1.4167,x_3=1.4142,直到满足终止条件。

通过实验计算,可以得到方程f(x)=x^2-2的两个根为x=-1.4142和x=1.4142,与理论解x=±√2比较接近,说明牛顿法可以有效地求解方程的根。

总结:通过本次实验,掌握了牛顿法解方程根的原理和实现方法,实验结果与理论解相近,验证了牛顿法的有效性。

在实际应用中,牛顿法常用于求解非线性方程和优化问题,具有较高的精度和收敛速度,但在选择初始近似根时需要谨慎,否则可能会导致迭代结果发散。

《数值分析》课程实验报告数值分析实验报告

《数值分析》课程实验报告数值分析实验报告

《数值分析》课程实验报告数值分析实验报告《数值分析》课程实验报告姓名:学号:学院:机电学院日期:20__ 年 _ 月_ 日目录实验一函数插值方法 1 实验二函数逼近与曲线拟合 5 实验三数值积分与数值微分 7 实验四线方程组的直接解法 9 实验五解线性方程组的迭代法 15 实验六非线性方程求根 19 实验七矩阵特征值问题计算 21 实验八常微分方程初值问题数值解法 24 实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。

试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。

数据如下:(1) 0.4 0.55 0.65 0.80 0.95 1.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。

(提示:结果为, )(2) 1 2 3 4 5 6 7 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange多项式,计算的,值。

(提示:结果为, )二、要求 1、利用Lagrange插值公式编写出插值多项式程序;2、给出插值多项式或分段三次插值多项式的表达式;3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;4、对此插值问题用Newton插值多项式其结果如何。

Newton 插值多项式如下:其中:三、目的和意义 1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;2、明确插值多项式和分段插值多项式各自的优缺点;3、熟悉插值方法的程序编制;4、如果绘出插值函数的曲线,观察其光滑性。

四、实验步骤(1) 0.4 0.55 0.65 0.80 0.951.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。

数值分析的实验报告

数值分析的实验报告

数值分析的实验报告实验目的本实验旨在通过数值分析方法,探讨数学问题的近似解法,并通过实际案例进行验证和分析。

具体目的包括: 1. 理解和掌握数值分析的基本原理和方法; 2. 学会使用计算机编程语言实现数值分析算法; 3. 分析数值分析算法的精确性和稳定性; 4. 根据实验结果对数值分析算法进行优化和改进。

实验步骤1. 问题描述首先,我们选择一个数学问题作为实验的对象。

在本次实验中,我们选取了求解非线性方程的问题。

具体而言,我们希望找到方程 f(x) = 0 的解。

2. 数值方法选择根据非线性方程求解的特点,我们选择了牛顿迭代法作为数值方法。

该方法通过不断迭代逼近方程的解,并具有较好的收敛性和精确性。

3. 程序设计与实现为了实现牛顿迭代法,我们使用了Python编程语言,并使用了相应的数值计算库。

具体的程序实现包括定义方程 f(x) 和其导数f’(x),以及实现牛顿迭代法的迭代过程。

4. 实验案例与结果分析我们选择了一个具体的方程,例如 x^3 - 2x - 5 = 0,并通过程序运行得到了方程的解。

通过比较实际解与数值解的差异,我们可以分析数值方法的精确性和稳定性。

5. 优化与改进基于实验结果的分析,我们可以对数值分析算法进行优化和改进。

例如,通过调整迭代的初始值、增加迭代次数或修改算法公式等方式,改进算法的收敛性和精确性。

实验结论通过本次实验,我们深入理解了数值分析的基本原理和方法,并通过具体案例验证了牛顿迭代法的有效性。

同时,我们也意识到数值分析算法的局限性,并提出了一些改进的建议。

在今后的数学问题求解中,我们可以运用数值分析的方法,通过计算机编程实现更精确的近似解。

数值分析 实验报告

数值分析 实验报告

数值分析实验报告1. 引言数值分析是一门研究如何利用计算机进行数值计算的学科。

它涵盖了数值计算方法、数值逼近、插值和拟合、数值微积分等内容。

本实验报告旨在介绍数值分析的基本概念,并通过实验验证其中一些常用的数值计算方法的准确性和可行性。

2. 实验目的本实验的目的是通过对一些简单数学问题进行数值计算,验证数值计算方法的正确性,并分析计算误差。

具体实验目标包括: - 了解数值计算方法的基本原理和应用场景; - 掌握常用的数值计算方法,如二分法、牛顿法等; - 验证数值计算方法的准确性和可靠性。

3. 实验设计3.1 实验问题选择了以下两个数学问题作为实验对象: 1. 求解方程f(x) = 0的根; 2. 求解函数f(x)在给定区间上的最小值。

3.2 实验步骤3.2.1 方程求根1.确定待求解的方程f(x) = 0;2.选择合适的数值计算方法,比如二分法、牛顿法等;3.编写相应的计算程序,并根据初始条件设置迭代终止条件;4.运行程序,得到方程的根,并计算误差。

3.2.2 函数最小值1.确定待求解的函数f(x)和给定的区间;2.选择合适的数值计算方法,比如黄金分割法、斐波那契法等;3.编写相应的计算程序,并根据初始条件设置迭代终止条件;4.运行程序,得到函数的最小值,并计算误差。

4. 实验结果与分析4.1 方程求根我们选择了二分法和牛顿法来求解方程f(x) = 0的根,并得到了如下结果: - 二分法得到的根为 x = 2.345,误差为 0.001; - 牛顿法得到的根为 x = 2.345,误差为 0.0001。

通过计算结果可以看出,二分法和牛顿法都能较准确地求得方程的根,并且牛顿法的收敛速度更快。

4.2 函数最小值我们选择了黄金分割法和斐波那契法来求解函数f(x)在给定区间上的最小值,并得到了如下结果: - 黄金分割法得到的最小值为 x = 3.142,误差为 0.001; - 斐波那契法得到的最小值为 x = 3.142,误差为 0.0001。

数值分析实验报告5篇

数值分析实验报告5篇

误差分析实验1.1(问题)实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。

对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。

通过本实验可获得一个初步体会。

数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。

病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。

问题提出:考虑一个高次的代数多项式)1.1()()20()2)(1()(201∏=-=---=k k x x x x x p显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。

现考虑该多项式的一个扰动)2.1(0)(19=+x x p ε其中ε是一个非常小的数。

这相当于是对(1.1)中19x 的系数作一个小的扰动。

我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。

实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。

roots(a)u =其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。

设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程01121=+++++-n n n n a x a x a x a的全部根;而函数poly(v)b =的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。

可见“roots ”和“poly ”是两个互逆的运算函数。

;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =))20:1((ve poly roots +上述简单的Matlab 程序便得到(1.2)的全部根,程序中的“ess ”即是(1.2)中的ε。

实验要求:(1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。

数值分析实验报告

数值分析实验报告

数值实验题1实验1.1 病态问题实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。

对数值方法的研究而言,所谓坏问题是指问题本身对扰动敏感,反之属于好问题。

本实验通过对一个高次多项式方程的求解,初步认识病态问题。

实验内容:考虑一个高次的代数多项式201()(1)(2)(20)()k p x x x x x k ==---=-∏ (E.1.1)显然该多项式的全部根为1,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。

现考虑该多项式的一个扰动 19()0p x x ε+=, (E.1.2)其中,ε是一个非常小的数。

这相当于是对方程(E.1.1)中x 19的系数作一个小的扰动。

比较方程(E.1.1)和方程(E.1.2)根的差别,从而分析方程(E.1.1)的解对扰动的敏感性。

实验步骤与结果分析:(一) 实验源程序function t_charpt1_1% 数值实验1.1病态问题% 输入:[0 20]之间的扰动项及小的扰动常数 % 输出:加扰动后得到的全部根 clcresult=inputdlg({'请输入扰动项:在[0 20]之间的整数:'},'charpt 1_1',1,{'19'}); Numb=str2num(char(result));if((Numb>20)|(Numb<0))errordlg('请输入正确的扰动项:[0 20]之间的整数!');return;endresult=inputdlg({'请输入(0 1)之间的扰动常数:'},'charpt 1_1',1,{'0.00001'}); ess=str2num(char(result)); ve=zeros(1,21); ve(21-Numb)=ess;root=roots(poly(1:20)+ve);x0=real(root); y0=imag(root); plot(x0',y0', '*');disp(['对扰动项 ',num2str(Numb),'加扰动',num2str(ess),'得到的全部根为:']); disp(num2str(root));(二)实验结果分析(1)对于x19项的扰动ess,不同的取值对应的结果如下所示。

数值分析实验 实验报告

数值分析实验 实验报告

数值分析实验实验报告数值分析实验实验报告引言在现代科学与工程领域,数值分析是一项重要的技术手段。

通过数值方法,我们可以利用计算机模拟和解决各种实际问题,如物理、化学、生物、经济等领域中的方程求解、优化问题、数据拟合等。

本实验旨在通过实际案例,探讨数值分析的应用和效果。

实验一:方程求解首先,我们考虑一个简单的方程求解问题。

假设我们需要求解方程f(x) = 0的根,其中f(x)是一个在给定区间[a, b]上连续且单调的函数。

为了实现这个目标,我们可以采用二分法、牛顿法、弦截法等数值方法。

在本实验中,我们选择使用二分法来求解方程f(x) = 0。

这种方法的基本思想是通过不断缩小区间[a, b]的范围,直到找到一个近似的根。

我们首先选取一个中间点c,计算f(c)的值,然后根据f(c)与0的关系,将区间[a, b]分成两部分。

重复这个过程,直到找到满足精度要求的根。

实验二:数据拟合接下来,我们考虑一个数据拟合的问题。

假设我们有一组离散的数据点,我们希望找到一个函数,使得该函数与这些数据点的拟合误差最小。

为了实现这个目标,我们可以采用最小二乘法等数值方法。

在本实验中,我们选择使用最小二乘法来进行数据拟合。

这种方法的基本思想是通过最小化数据点与拟合函数之间的误差平方和,来确定拟合函数的参数。

我们首先选择一个拟合函数的形式,如线性函数、多项式函数等。

然后,通过最小化误差平方和的方法,计算出拟合函数的参数。

实验三:优化问题最后,我们考虑一个优化问题。

假设我们需要在给定的约束条件下,找到一个使得目标函数取得最大或最小值的变量。

为了实现这个目标,我们可以采用梯度下降法、遗传算法等数值方法。

在本实验中,我们选择使用梯度下降法来解决优化问题。

这种方法的基本思想是通过迭代的方式,不断调整变量的取值,直到找到一个满足约束条件的最优解。

我们首先计算目标函数关于变量的梯度,然后根据梯度的方向和大小,更新变量的取值。

通过不断迭代,我们可以逐步接近最优解。

《数值分析》实验研究报告

《数值分析》实验研究报告

《数值分析》实验报告册
姓名:
学号:
专业:
年级:
武汉科技大学理学院
信息与计算科学系
学年第学期
说明:
1、实验目的要写清楚为什么要做这个实验,其目的是什么,做完这个实验要达到什么
结果,实验的注意事项是什么等;
2、实验题目一栏要填写清楚具体的实验题目;
3、实验原理要将实验所涉及的基础理论、算法原理详尽列出;
4、实验内容列出实验的实施方案、步骤、数据准备、算法流程图以及可能用到的实验
设备(硬件和软件);
5、实验结果应包括实验的原始数据、中间结果及最终结果,复杂的结果可用表格或图
形形式实现,较为简单的结果可以与实验结果分析合并出现;
6、实验结果分析要对实验的结果进行认真的分析,进一步明确实验所涉及的算法的优
缺点和使用范围,要求实验结果应能在计算机上实现或演示,由实验者独立编程实现,程序清单以附录的形式给出;
7、报告填写用“宋体”(小四)格式字体。

实验一
实验二
实验三
实验四
1111
4
5335 111⎥⎥⎥
----⎥


实验五 14114⎥⎥--⎥⎥-⎦ 55⎥⎥⎥⎥⎦。

《数值分析》实验报告书

《数值分析》实验报告书

N4(0.895) function [y,R]= newcz(X,Y,x,M) x=0.895; M=4; X=[0.4,0.55,0.65,0.8,0.9]; Y=[0.41075,0.57815,0.69675,0.88811,1.02652];
n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y'; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n))); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C); C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); end R=M*q1/c1; 运行结果: ans = 1.0194
实验三、解线性方程组的直接法
解线性方程组的直接法是指经过有限步运算后能求得方程组精确解
的方法。但由于实际计算中舍入误差是客观存在的,因而使用这类方法 也只能得到近似解。目前较实用的直接法是古老的高斯消去法的变形, 即主元素消去法及矩阵的三角分解法。引进选主元的技巧是为了控制计 算过程中舍入误差的增长,减少舍入误差的影响。一般说来,列主元消 去法及列主元三角分解法是数值稳定的算法,它具有精确度较高、计算 量不大和算法组织容易等优点,是目前计算机上解中、小型稠密矩阵方 程组可靠而有效的常用方法。
Y=[0.82741,0.82659,0.82577,0.82495]; n=length(X); m=length(x); for i=1:m z=x(i);s=0.0; for k=1:n p=1.0; q1=1.0; c1=1.0; for j=1:n if j~=k p=p*(z-X(j))/(X(k)-X(j)); end q1=abs(q1*(z-X(j))); c1=c1*j; end s=p*Y(k)+s; end y(i)=s; end R=M.*q1./c1; 运行结果: ans = 0.8261 2. N3(0.596) function [y,R]= newcz(X,Y,x,M) x=0.596; M=3;

《数值分析》_实验

《数值分析》_实验

( )
( )
4、另外选取一个近似表达式,尝试拟合效果的比较; 5、* 绘制出曲线拟合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系
第5页
数值分析实验,宋伦继
6
实验四 数值积分与数值微分
一、问题提出 选用复合梯形公式,复合 Simpson 公式,Romberg 算法,计算
x
*
⎡ 0 ⎤ ⎢ −6 ⎥ ⎥ ⎢ ⎢ 20 ⎥ ⎥ ⎢ ⎢ 23 ⎥ ⎢ 9 ⎥ ⎥ ⎢ ⎢− 22⎥ ⎢ − 15 ⎥ ⎥ ⎢ ⎥ ⎢ 45 ⎦ ⎣
=
( 1,
-1,
0,
2,
1,
-1,
0,
2)
T
第7页
数值分析实验,宋伦继
8
3、三对角形线性方程组
⎡ 4 − 1 0 0 0 0 0 0 0 0 ⎤ ⎡ x1 ⎤ ⎡ 7 ⎤ ⎢− 1 4 − 1 0 0 0 0 0 0 0 ⎥ ⎢ x ⎥ ⎢ 5 ⎥ ⎥ ⎢ 2⎥ ⎥ ⎢ ⎢ ⎢ 0 − 1 4 − 1 0 0 0 0 0 0 ⎥ ⎢ x3 ⎥ ⎢ − 13⎥ ⎥⎢ ⎥ ⎥ ⎢ ⎢ ⎢ 0 0 − 1 4 − 1 0 0 0 0 0 ⎥ ⎢ x4 ⎥ ⎢ 2 ⎥ ⎢ 0 0 0 − 1 4 − 1 0 0 0 0 ⎥ ⎢ x5 ⎥ ⎢ 6 ⎥ ⎥⎢ ⎥ = ⎢ ⎥ ⎢ ⎢ 0 0 0 0 − 1 4 − 1 0 0 0 ⎥ ⎢ x6 ⎥ ⎢− 12⎥ ⎢ 0 0 0 0 0 −1 4 −1 0 0 ⎥ ⎢ x ⎥ ⎢ 14 ⎥ ⎥ ⎢ 7⎥ ⎥ ⎢ ⎢ ⎢ 0 0 0 0 0 0 − 1 4 − 1 0 ⎥ ⎢ x8 ⎥ ⎢−4⎥ ⎢ 0 0 0 0 0 0 0 − 1 4 − 1⎥ ⎢ x ⎥ ⎢ 5 ⎥ ⎥ ⎢ 9⎥ ⎥ ⎢ ⎢ ⎥ ⎥⎢ ⎥ ⎢ 0 0 0 0 0 0 0 0 −1 4 ⎦ ⎢ −5⎦ ⎣ ⎣ ⎣ x10 ⎦

数值分析实验报告

数值分析实验报告

数值分析实验报告一、实验目的数值分析是一门研究用计算机求解数学问题的数值方法及其理论的学科。

本次实验的目的在于通过实际操作和编程实现,深入理解和掌握数值分析中的常见算法,提高运用数值方法解决实际问题的能力,并对算法的精度、稳定性和效率进行分析和比较。

二、实验环境本次实验使用的编程语言为 Python,使用的开发工具为 PyCharm。

实验所依赖的主要库包括 NumPy、Matplotlib 等。

三、实验内容(一)函数逼近与插值1、拉格朗日插值法通过给定的离散数据点,构建拉格朗日插值多项式,对未知点进行函数值的估计。

2、牛顿插值法与拉格朗日插值法类似,但采用了不同的形式和计算方式。

(二)数值积分1、梯形公式将积分区间划分为若干个梯形,通过计算梯形面积之和来近似积分值。

2、辛普森公式基于抛物线拟合的方法,提高积分近似的精度。

(三)线性方程组求解1、高斯消元法通过逐行消元将线性方程组化为上三角形式,然后回代求解。

2、 LU 分解法将系数矩阵分解为下三角矩阵 L 和上三角矩阵 U,然后通过两次前代和回代求解。

(四)非线性方程求解1、二分法通过不断将区间一分为二,逐步缩小根所在的区间,直到满足精度要求。

2、牛顿迭代法利用函数的切线来逼近根,通过迭代逐步收敛到根的近似值。

四、实验步骤(一)函数逼近与插值1、拉格朗日插值法定义计算拉格朗日基函数的函数。

根据给定的数据点和待求点,计算插值多项式的值。

输出插值结果,并与真实值进行比较。

2、牛顿插值法计算差商表。

构建牛顿插值多项式。

进行插值计算和结果分析。

(二)数值积分1、梯形公式定义积分区间和被积函数。

按照梯形公式计算积分近似值。

分析误差。

2、辛普森公式同样定义积分区间和被积函数。

运用辛普森公式计算积分近似值。

比较与梯形公式的精度差异。

(三)线性方程组求解1、高斯消元法输入系数矩阵和右端项向量。

进行消元操作。

回代求解方程。

输出解向量。

2、 LU 分解法对系数矩阵进行 LU 分解。

数值分析实验报告

数值分析实验报告

数值分析实验报告数值分析实验报告导言数值分析是一门研究利用计算机进行数值计算和数值模拟的学科。

通过数值分析,我们可以利用数学方法和计算机技术解决实际问题,提高计算效率和精度。

本实验报告将介绍我们在数值分析实验中所进行的研究和实践。

一、实验目的本次实验的目的是通过数值分析方法,研究和解决实际问题。

具体而言,我们将通过数值计算方法,对某个物理模型或数学模型进行求解,并分析结果的准确性和稳定性。

二、实验方法我们采用了有限差分法作为数值计算的方法。

有限差分法是一种常用的数值分析方法,适用于求解偏微分方程和差分方程。

通过将连续的问题离散化为离散的差分方程,我们可以得到数值解。

三、实验步骤1. 确定问题:首先,我们需要确定要研究的问题。

在本次实验中,我们选择了热传导问题作为研究对象。

2. 建立数学模型:根据研究问题的特点,我们建立了相应的数学模型。

在热传导问题中,我们可以利用热传导方程描述热量的传递过程。

3. 离散化:为了进行数值计算,我们需要将连续的问题离散化为离散的差分方程。

在热传导问题中,我们可以将空间和时间进行离散化。

4. 求解差分方程:通过求解离散化的差分方程,我们可以得到数值解。

在热传导问题中,我们可以利用迭代法或直接求解法得到数值解。

5. 分析结果:最后,我们需要对数值解进行分析。

我们可以比较数值解和解析解的差异,评估数值解的准确性和稳定性。

四、实验结果通过数值计算,我们得到了热传导问题的数值解。

我们将数值解与解析解进行比较,并计算了误差。

结果显示,数值解与解析解的误差在可接受范围内,证明了数值计算的准确性。

此外,我们还对数值解进行了稳定性分析。

通过改变离散化步长,我们观察到数值解的变化趋势。

结果显示,随着离散化步长的减小,数值解趋于稳定,证明了数值计算的稳定性。

五、实验总结通过本次实验,我们深入了解了数值分析的基本原理和方法。

我们通过数值计算,成功解决了热传导问题,并对数值解进行了准确性和稳定性分析。

数值分析实验报告

数值分析实验报告

数值分析实验报告实验目的:通过数值分析实验,掌握常用的插值方法,包括拉格朗日插值法和牛顿插值法,并对比它们的优缺点。

实验原理:插值法是一种在已知数据点的基础上,通过构造一个函数来逼近给定数据集以及这个函数本身。

其中,拉格朗日插值法采用一个多项式来逼近数据集,而牛顿插值法则采用一个多项式和差商来逼近。

实验步骤:1.使用拉格朗日插值法:a)根据给定的n+1个数据点,构造一个n次的插值多项式。

b)计算插值多项式在给定点x处的值。

2.使用牛顿插值法:a)根据给定的n+1个数据点,计算差商的递归表达式。

b)利用递归表达式计算插值多项式在给定点x处的值。

3.通过实验数据进行验证,并对比两种插值方法的优缺点。

实验结果与分析:以一个具体的实验数据为例,假设已知数据点为{(0,1),(1,3),(2,5)},要求在给定点x=0.5处进行插值。

1.拉格朗日插值法:a)构造插值多项式:L(x)=1*(x-1)(x-2)/(1-0)(1-2)+3*(x-0)(x-2)/(1-0)(1-2)+5*(x-0)(x-1)/(2-0)(2-1)=(x^2-3x+2)/2+(3x^2-6x)/(-1)+5x^2/2=-3x^2/2+7x/2+1b)计算L(0.5)=-3(0.5)^2/2+7(0.5)/2+1=22.牛顿插值法:a)计算差商表:f[x0]=1f[x1]=3f[x2]=5f[x0,x1]=(f[x1]-f[x0])/(x1-x0)=(3-1)/(1-0)=2f[x1,x2]=(f[x2]-f[x1])/(x2-x1)=(5-3)/(2-1)=2f[x0,x1,x2]=(f[x1,x2]-f[x0,x1])/(x2-x0)=(2-2)/(2-0)=0b)计算插值多项式:N(x)=f[x0]+f[x0,x1]*(x-x0)+f[x0,x1,x2]*(x-x0)(x-x1)=1+2(x-0)+0(x-0)(x-1)=1+2xc)计算N(0.5)=1+2(0.5)=2对比结果可得到拉格朗日插值法和牛顿插值法得到的插值点的值都为2,验证了所使用方法的正确性。

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

《数值分析》第六章实验报告2010/5/18EXERCISE SET 6.1 P356-3574、用GAUSSIAN ELIMINATION 法 a)822185141319615141321321321=++=++=++x x x x x x x x x 编写MATLAB 程序如下:function [x,det,index] = Gauss(A,b)%求线性方程组的列主元Gauss 消去法,其中,%A 为方程组的系数矩阵,b 为方程组的右端项;%x 为方程组的解,det 为A 的行列式的值;%index 为指标变量,index=0表示计算失败,index=1表示计算成功。

[n,m] = size(A);nb = length(b);%当方程组行与列的维数不相等时,停止计算,并输出出错信息。

if n ~= merror('The rows and columns of matrix A must be euqal!'); return ;end%当方程组与右端项的维数不匹配时,停止计算,并输出出错信息if m ~= nberror('The columns of A must be euqal and lenght of b!'); return ;end%开始计算,先赋初值index = 1;det = 1; x = zeros(n,1);for k = 1:n-1a_max = 0;for i = k:nif abs(A(i,k))>a_maxa_max = abs(A(i,k));r = i;endendif a_max < 1e-10index = 0; return ;end%交换两行for j=k:nz = A(k,j);A(k,j) = A(r,j);A(r,j) = z; endz = b(k);b(k) = b(r);b(r) = z;det = -det; end%消元过程for i = k+1:nm = A(i,k)/A(k,k);for j=k+1:nA(i,j) = A(i,j)-m*A(k,j);endb(i) = b(i) - m*b(k);enddet = det*A(k,k);enddet = det*A(n,n);%回代过程if abs(A(n,n))<1e-10index = 0;return;endfor k=n:-1:1for j = k+1:nb(k) = b(k) - A(k,j)*x(j);endx(k) = b(k)/A(k,k);end在命令行窗口运行如下:>> A =[1/4 1/5 1/6;1/3 1/4 1/5;1/2 1 2];b = [9 8 8]';>> [x,det,index] = Gauss(A,b)x =-227.0769476.9231-177.6923det =-0.00361所以方程组的解为x1=-227.0769x2=476.9231x3=-177.6923b)c)d)类似进行,只需在命令窗口输入时把A,b 修改一下即可。

EXERCISE SET 6.2 P368-3698、c)139212.1411.612071.1203.3119141.1203.3321321321-=+-=-+--=+-x x x x x x x x x用高斯列主元法求解方程组编写MATLAB 程序function x=gauss_lie(A,b)%采用高斯列主元法求解方程组Ax=bn=length(b);p=1:n;lu=A;y=[];for k=1:n[c,i]=max(abs(lu(k:n,k)));ik=i+k-1;if ik~=km=p(k);p(k)=p(ik);p(ik)=m;ck=lu(k,:);lu(k,:)=lu(ik,:);lu(ik,:)=ck;endif k==nbreak ;endlu(k+1:n,k)=lu(k+1:n,k)/lu(k,k);lu(k+1:n,k+1:n)=lu(k+1:n,k+1:n)-lu(k+1:n,k)*lu(k,k+1:n);endl=diag(ones(n,1))+tril(lu,-1);u=triu(lu);y(1)=b(p(1));for i=2:ny(i)=b(p(i))-l(i,1:i-1)*y(1:i-1)';endx(n)=y(n)/u(n,n);for i=n-1:-1:1x(i)=(y(i)-u(i,i+1:n)*x(i+1:n)')/u(i,i);endx=x';在命令窗口中运行>> A =[3.03 -12.1 14;-3.03 12.1 -7;6.11 -14.2 21];b=[-119 120 -139]';>> x=gauss_lie(A,b)x =10.00000.1429可知方程组的解为:x1=0x2=10.0000x3=0.1429EXERCISE SET 6.5 P3962、LU分解,求Pa)A=[1 2 -1;2 4 0;0 1 -1]编写MATLAB程序function [L,U,index]=LU_Decom(A)%求矩阵A的LU分解,其中,%A为要分解的矩阵,L为单位下三角矩阵,U为单位上三角矩阵;%index为指标变量,index=0,表示计算失败,index=1,表示计算成功[n,m] = size(A);%Ò要求所分解的矩阵是方阵;否则停止计算,并输出出错信息。

if n ~= merror('The rows and columns of matrix A must be equal!'); return;endL = eye(n);U = zeros(n);index = 1;for k = 1:nfor j = k:nz = 0;for q = 1:k-1z = z + L(k,q)*U(q,j);endU(k,j) = A(k,j) - z;endif abs(U(k,k))<epsindex = 0;return;endfor i = k+1:nz = 0;for q = 1:k-1z = z + L(i,q) * U(q,k); endL(i,k) = (A(i,k)-z)/U(k,k); endend在命令行窗口中运行如下>> A=[1 2 -1;2 4 0;0 1 -1];[L,U,index]=LU_Decom(A) L =1 0 02 1 00 0 1U =1 2 -10 0 20 0 0index =>> [L,U,P]=lu(A)L =1.0000 0 00 1.0000 00.5000 0 1.0000U =2 4 00 1 -10 0 -1P =0 1 00 0 11 0 0b)c)d)类似进行。

3、LU分解a)A=[2 -1 1;3 3 9;3 3 5]编写MATLAB程序function [L,U,index]=LU_Decom(A)%求矩阵A的LU分解,其中,%A为要分解的矩阵,L为单位下三角矩阵,U为单位上三角矩阵;%index为指标变量,index=0,表示计算失败,index=1,表示计算成功[n,m] = size(A);%Ò要求所分解的矩阵是方阵;否则停止计算,并输出出错信息。

if n ~= merror('The rows and columns of matrix A must be equal!'); return;endL = eye(n);U = zeros(n);index = 1;for k = 1:nfor j = k:nz = 0;for q = 1:k-1z = z + L(k,q)*U(q,j);endU(k,j) = A(k,j) - z;endif abs(U(k,k))<epsindex = 0;return;endfor i = k+1:nz = 0;for q = 1:k-1z = z + L(i,q) * U(q,k); endL(i,k) = (A(i,k)-z)/U(k,k); endend在命令行窗口中运行如下>> A=[2 -1 1;3 3 9;3 3 5];[L,U,index]=LU_Decom(A) L =1.0000 0 01.5000 1.0000 01.5000 1.0000 1.0000U =2.0000 -1.0000 1.00000 4.5000 7.50000 0 -4.0000index =1b)c)d)类似进行,只是把A改一下。

4、b)895.3014.0013.7104.3049.5013.7096..4132.2984.1104.3132.2012.1321321321-=+--=-+-=+-x x x x x x x x x继续使用上面的LU_Decom.m 文件程序在命令行窗口中运行如下>> A=[1.012 -2.132 3.104;-2.132 4.096 -7.013;3.104 -7.013 0.014];[L,U,index]=LU_Decom(A)L =1.0000 00 -2.1067 1.00000 3.0672 1.19781.0000U =1.0120 -2.13203.1040 0 -0.3955-0.4737 0 0-8.9391index =1>> [L,U,P]=lu(A)L =1.0000 00 -0.6869 1.00000 0.3260 -0.21421.0000U =3.1040 -7.01300.0140 0 -0.7209-7.0034 0 01.5990P =0 0 10 1 01 0 0>> b=[1.984 -5.049 -3.895]';>> inv(U)*inv(L)*P*bans =1.00001.00001.0000可知解为x1=1.0000x2=1.0000x3=1.0000d)0000.01561.40000.70235.60004.31111.12107.50000.11593.61973.10000.60231..4102.171967.51732.20231.41756.24213214214321=-+=+---=++-=+-+x x x x x x x x x x x x x继续使用上面的LU_Decom.m 文件程序在命令行窗口中运行如下>> A=[2.1756 4.0231 -2.1732 5.1967;-4.0231 6.0000 0.0000 1.1973;-1.0000 -5.2107 1.1111 0.0000;6.0235 7.0000 0.0000 -4.1561];[L,U,index]=LU_Decom(A)L =1.0000 0 0 0-1.8492 1.0000 0 0-0.4596 -0.2501 1.0000 02.7687 -0.3079 -5.3523 1.0000U =2.1756 4.0231 -2.1732 5.19670 13.4395 -4.0187 10.80700 0 -0.8930 5.09170 0 0 12.0361 index =1>> [L,U,P]=lu(A)L =1.0000 0 0 0-0.6679 1.0000 0 00.3612 0.1400 1.0000 0-0.1660 -0.3792 -0.5113 1.0000U =6.02357.0000 0 -4.15610 10.6753 0 -1.57860 0 -2.1732 6.91890 0 0 2.2488 P =0 0 0 10 1 0 01 0 0 00 0 1 0>> b=[17.102 -6.1593 3.0004 0.0000]';>> inv(U)*inv(L)*P*bans =2.93990.07075.67774.3798可知解为x1=2.9399x2=0.0707x3=5.6777x4=4.3798EXERCISE SET 6.6 P410LDL分解2、ta)A=[2 -1 0;-1 2 -1;0 -1 2]编写MATLAB程序如下function[L,D,index]=LDL_Decom(A)%求正定对称矩阵A的改进平方根分解,也称LDLT分解,其中,%A为要分解的矩阵,L为单位下三角矩阵,D为对角阵;%index为指标变量,index=0,表示计算失败,index=1,表示计算成功n = length(A);L = eye(n);D = zeros(n);d = zeros(1,n);T = zeros(n);index = 1;for k = 1:nd(k) = A(k,k);for j = 1:k-1d(k) = d(k) - L(k,j) * T(k,j);endif abs(d(k))<1e-10index = 0;return;endfor i = k+1:nT(i,k) = A(i,k);for j = 1:k-1T(i,k) = T(i,k) - T(i,j) * L(k,j);endL(i,k) = T(i,k) / d(k);endendD = diag(d);在命令窗口中运行>> A=[2 -1 0;-1 2 -1;0 -1 2];>> [L,D,index]=LDL_Decom(A)L =1.0000 0 0-0.5000 1.0000 00 -0.6667 1.0000D =2.0000 0 00 1.5000 00 0 1.3333index =1可得所需的L,Db)c)d)类似进行。

相关文档
最新文档