基于MATLAB数值分析实验报告
基于matlab的实验报告
基于matlab的实验报告实验报告:基于MATLAB 的实验一、实验目的通过使用MATLAB 软件,掌握如何进行数据分析、图像处理、算法实现等一系列实验操作,提高实验者的实践能力和动手能力。
二、实验原理MATLAB 是一种在科学计算和技术开发领域广泛应用的计算机软件。
它能进行矩阵计算、绘制函数和数据图像、实现算法以及进行数据分析等。
通过掌握MATLAB 的使用,能够快速、高效地解决各种科学和工程问题。
三、实验内容1. 数据分析:使用MATLAB 的数据分析工具进行数据的导入、处理和分析。
2. 图像处理:利用MATLAB 的图像处理工具包对图像进行滤波、增强、分割等操作。
3. 算法实现:使用MATLAB 实现常用的算法,如排序、搜索、图像压缩等。
四、实验步骤1. 数据分析:(1)使用MATLAB 的读取数据函数将数据导入MATLAB 环境中。
(2)利用MATLAB 的数据处理函数进行数据清洗和预处理。
(3)使用MATLAB 的统计工具进行数据分析,如求平均值、标准差等。
(4)利用MATLAB 的绘图函数将分析结果可视化。
2. 图像处理:(1)使用MATLAB 的读取图像函数将图像导入MATLAB 环境中。
(2)利用MATLAB 的图像处理工具包进行滤波操作,如均值滤波、中值滤波等。
(3)使用MATLAB 的图像增强函数对图像进行锐化、变换等操作。
(4)利用MATLAB 的图像分割算法对图像进行分割。
3. 算法实现:(1)使用MATLAB 编写排序算法,如冒泡排序、快速排序等。
(2)使用MATLAB 编写搜索算法,如二分查找、线性搜索等。
(3)使用MATLAB 实现图像压缩算法,如离散余弦变换(DCT)。
五、实验结果实验中,我们使用MATLAB 完成了数据分析、图像处理和算法实现的一系列实验操作。
通过数据分析,我们成功导入了数据并对其进行了清洗和预处理,最后得到了数据的统计结果。
在图像处理方面,我们对图像进行了滤波、增强和分割等操作,最终得到了处理后的图像。
(精品)数值分析matlab实验报告
实验2.1 多项式差值的振荡现象一、实验内容设区间[-1,1]上函数22511)(xx f +=,考虑区间[-1,1]的一个等距划分,分点为n i x i 21+-=,i=0,1,2,...,n ,则拉格朗日插值多项式为∑=+=n i i in x l x L 02)(2511.其中,l i (x),i=0,1,2,...,n 是Lagrange 插值基函数.1) 选择不断增大的分点数目n=2,3,...,画出原函数f(x)及插值多项式函数L n (x)在[-1,1]上的图像,比较并分析实验结果.2) 选择其他的函数,例如定义在区间[-5,5]上的函数41)(xx x h +,x x g arctan )(=,重复上述的实验看其结果如何.二、实验程序1.主程序function chapter2promps={'请选择试验函数,若选f(x),请输入f ,若选好h(x),请输入h ,若选g(x),请输入g :'};result=inputdlg(promps,'charpt 2',1,{'f'});Nb_f=char(result);if(Nb_f~='f'&&Nb_f~='h'&&Nb_f~='g')errordlg('试验函数选择错误!');return;endresult=inputdlg({'请输入插值多项式的次数N :'},'charpt_2',1,{'10'}); Nd=str2num(char(result));if(Nd<1)errordlg('插值多项式的次数输入错误!');return;endswitch Nb_fcase'f'f=inline('1./(1+25*x.^2)');a=-1;b=1;case'h'f=inline('x./(1+x.^4)');a=-5;b=5;case'g'f=inline('atan(x)');a=-5;b=5;endx0=linspace(a,b,Nd+1);y0=feval(f,x0);x=a:0.1:b;y=Lagrange(x0,y0,x);clf;fplot(f,[a b],'rx');hold on;plot(x,y,'b--');xlabel('x');ylabel('y=f(x) x and y=Ln(x) --');grange函数function y=Lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0;for k=1:np=1.0;for j=1:nif (j~=k)p=p.*(z-x0(j))/(x0(k)-x0(j));endends=s+p*y0(k);endy(i)=s;end三、实验结果及分析1)选择不断增大的分点数目n,原函数f(x)及插值多项式函数L n(x)在[-1,1]上的图像。
数值分析matlab实验报告
数值分析matlab实验报告数值分析MATLAB实验报告引言:数值分析是一门研究利用计算机进行数值计算和解决数学问题的学科。
它在科学计算、工程技术、金融等领域中有着广泛的应用。
本实验旨在通过使用MATLAB软件,探索数值分析的基本概念和方法,并通过实际案例来验证其有效性。
一、插值与拟合插值和拟合是数值分析中常用的处理数据的方法。
插值是通过已知数据点之间的函数关系,来估计未知数据点的值。
拟合则是通过一个函数来逼近一组数据点的分布。
在MATLAB中,我们可以使用interp1函数进行插值计算。
例如,给定一组离散的数据点,我们可以使用线性插值、多项式插值或样条插值等方法,来估计在两个数据点之间的未知数据点的值。
拟合则可以使用polyfit函数来实现。
例如,给定一组数据点,我们可以通过最小二乘法拟合出一个多项式函数,来逼近这组数据的分布。
二、数值积分数值积分是数值分析中用于计算函数定积分的方法。
在实际问题中,往往无法通过解析的方式求得一个函数的积分。
这时,我们可以使用数值积分的方法来近似计算。
在MATLAB中,我们可以使用quad函数进行数值积分。
例如,给定一个函数和积分区间,我们可以使用quad函数来计算出该函数在给定区间上的定积分值。
quad函数使用自适应的方法,可以在给定的误差限下,自动调整步长,以保证积分结果的精度。
三、常微分方程数值解常微分方程数值解是数值分析中研究微分方程数值解法的一部分。
在科学和工程中,我们经常遇到各种各样的微分方程问题。
而解析求解微分方程往往是困难的,甚至是不可能的。
因此,我们需要使用数值方法来近似求解微分方程。
在MATLAB中,我们可以使用ode45函数进行常微分方程数值解。
例如,给定一个微分方程和初始条件,我们可以使用ode45函数来计算出在给定时间范围内的解。
ode45函数使用龙格-库塔方法,可以在给定的误差限下,自动调整步长,以保证数值解的精度。
结论:本实验通过使用MATLAB软件,探索了数值分析的基本概念和方法,并通过实际案例验证了其有效性。
matlab数值计算实验报告
matlab数值计算实验报告Matlab数值计算实验报告引言:Matlab是一种广泛应用于科学与工程领域的高级计算机语言和环境,它提供了丰富的函数库和工具箱,方便用户进行数值计算、数据分析和可视化等任务。
本实验报告将介绍我在使用Matlab进行数值计算实验中的一些经验和心得体会。
一、数值计算方法数值计算方法是一种利用数值近似来解决实际问题的方法,它在科学和工程领域具有广泛的应用。
在Matlab中,我们可以利用内置的函数和工具箱来实现各种数值计算方法,例如插值、数值积分、数值微分等。
二、插值方法插值是一种通过已知数据点来推测未知数据点的方法。
在Matlab中,我们可以使用interp1函数来进行插值计算。
例如,我们可以通过已知的一些离散数据点,利用interp1函数来估计其他位置的数值。
这在信号处理、图像处理等领域具有重要的应用。
三、数值积分数值积分是一种通过分割曲线或曲面来近似计算其面积或体积的方法。
在Matlab中,我们可以使用quad函数来进行数值积分计算。
例如,我们可以通过quad函数来计算某个函数在给定区间上的积分值。
这在概率统计、物理学等领域具有广泛的应用。
四、数值微分数值微分是一种通过数值逼近来计算函数导数的方法。
在Matlab中,我们可以使用diff函数来进行数值微分计算。
例如,我们可以通过diff函数来计算某个函数在给定点上的导数值。
这在优化算法、控制系统等领域具有重要的应用。
五、数值求解数值求解是一种通过数值近似来计算方程或方程组的根的方法。
在Matlab中,我们可以使用fsolve函数来进行数值求解计算。
例如,我们可以通过fsolve函数来求解某个非线性方程的根。
这在工程计算、金融分析等领域具有广泛的应用。
六、实验应用在本次实验中,我使用Matlab进行了一些数值计算的应用实验。
例如,我利用插值方法来估计某个信号在给定位置的数值,利用数值积分方法来计算某个曲线下的面积,利用数值微分方法来计算某个函数在给定点的导数值,以及利用数值求解方法来求解某个方程的根。
数值分析matlab实验报告
数值分析matlab实验报告《数值分析MATLAB实验报告》摘要:本实验报告基于MATLAB软件进行了数值分析实验,通过对不同数学问题的数值计算和分析,验证了数值分析方法的有效性和准确性。
实验结果表明,MATLAB在数值分析领域具有较高的应用价值和实用性。
一、引言数值分析是一门研究利用计算机进行数值计算和分析的学科,其应用范围涵盖了数学、物理、工程等多个领域。
MATLAB是一种常用的数值计算软件,具有强大的数值分析功能,能够进行高效、准确的数值计算和分析,因此在科学研究和工程实践中得到了广泛的应用。
二、实验目的本实验旨在通过MATLAB软件对数值分析方法进行实验验证,探究其在不同数学问题上的应用效果和准确性,为数值分析方法的实际应用提供参考和指导。
三、实验内容1. 利用MATLAB进行方程求解实验在该实验中,利用MATLAB对给定的方程进行求解,比较数值解和解析解的差异,验证数值解的准确性和可靠性。
2. 利用MATLAB进行数值积分实验通过MATLAB对给定函数进行数值积分,比较数值积分结果和解析积分结果,验证数值积分的精度和稳定性。
3. 利用MATLAB进行常微分方程数值解实验通过MATLAB对给定的常微分方程进行数值解,比较数值解和解析解的差异,验证数值解的准确性和可靠性。
四、实验结果与分析通过对以上实验内容的实际操作和分析,得出以下结论:1. 在方程求解实验中,MATLAB给出的数值解与解析解基本吻合,验证了MATLAB在方程求解方面的高准确性和可靠性。
2. 在数值积分实验中,MATLAB给出的数值积分结果与解析积分结果基本吻合,验证了MATLAB在数值积分方面的高精度和稳定性。
3. 在常微分方程数值解实验中,MATLAB给出的数值解与解析解基本吻合,验证了MATLAB在常微分方程数值解方面的高准确性和可靠性。
五、结论与展望本实验通过MATLAB软件对数值分析方法进行了实验验证,得出了数值分析方法在不同数学问题上的高准确性和可靠性。
基于MATLAB数值分析实验报告
基于MATLAB数值分析实验报告班级:072115姓名:李凯学号:20111003943实验二:矩阵与向量运算实验目的:在MATLAB里,会对矩阵与向量进行加、减、数乘、求逆及矩阵特征值运算,以及矩阵的LU分解。
设A是一个n×n方阵,X是一个n维向量,乘积Y=AX可以看作是n维空间变换。
如果能够找到一个标量λ,使得存在一个非零向量X,满足:AX=λX (3.1)则可以认为线性变换T(X)=AX将X映射为λX,此时,称X 是对应于特征值λ的特征向量。
改写式(3.1)可以得到线性方程组的标准形式:(A-λI)X=0 (3.2)式(3.2)表示矩阵(A-λI)和非零向量X的乘积是零向量,式(3.2)有非零解的充分必要条件是矩阵(A-λI)是奇异的,即:det(A-λI)=0该行列式可以表示为如下形式:a11–λa12 (1)a21 a22 –λ…a2n =0 (3.3)…………A n1 a n2 …a nn将式(3.3)中的行列式展开后,可以得到一个n阶多项式,称为特征多项式:f(λ)=det(A-λI)=(-1)n(λn+c1λn-1+c2λn-2+…+c n-1λ+c n) (3.4) n阶多项式一共有n个根(可以有重根),将每个根λ带入式(3.2),可以得到一个非零解向量。
习题:求下列矩阵的特征多项式的系数和特征值λj:3 -1 0A= -1 2 -10-1 3解:在MATLAB中输入命令:A=【3 -1 0;-1 2 -1;0 -1 3】;c=poly(A)roots(c)得到:实验四:Lagrange插值多项式实验目的:理解Lagrange插值多项式的基本概念,熟悉Lagrange插值多项式的公式源代码,并能根据所给条件求出Lagrange插值多项式,理解龙格现象。
%功能:对一组数据做Lagrange插值%调用格式:yi=Lagran_(x,y,xi)%x,y:数组形式的数据表%xi:待计算y值的横坐标数组%yi:用Lagrange还擦之算出y值数组function fi=Lagran_(x,f,xi)fi=zeros(size(xi));np1=length(f);for i=1:np1z=ones(size(xi));for j=i:np1if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));endendfi=fi+z*f(i);endreturn习题:已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。
数值分析matlab完整版实验报告
《数值分析》报告运用Matlab求解非线性方程的根学院:专业:班级:姓名:学号:1. 目的掌握非线性方程求根的方法,并选取实例运用MATLAB 软件进行算法的实现,分别用牛顿法、弦截法和抛物线法求非线性方程的根。
2. 报告选题报告选取《数值分析(第四版)》290页习题7作为研究对象,即求3()310f x x x =--=在02x =附近的根。
根的准确值* 1.87938524...x =,要求结果准确到四位有效数字。
(1) 用牛顿法;(2) 用弦截法,取02x =,1 1.9x =; (3) 用抛物线法,取01x =,13x =,22x =。
3. 理论基础 (1) 牛顿迭代法牛顿迭代法是一种特殊的不动点迭代法,其计算公式为1(),0,1,2,...'()k k k k f x x x k f x +=-=其迭代函数为()()'()f x x x f x ϕ=-牛顿迭代法的收敛速度,当(*)0,'(*)0,''(*)0f x f x f x =≠≠时,容易证明,'(*)0f x ≠,''(*)''(*)0'(*)f x x f x ϕ=≠,牛顿迭代法是平方收敛的,且12''(*)lim2'(*)k k ke f x e f x +→∞=。
(2)弦截法将牛顿迭代法中的'()k f x 用()f x 在1k x -,k x 处的一阶差商来代替,即可得弦截法111()()()()k k k k k k k f x x x x x f x f x ++-=--- 。
(3)抛物线法弦截法可以理解为用过11(,()),(())k k k k x f x x f x ---两点的直线方程的根近似替()0f x =的根。
若已知()0f x =的三个近似根k x ,1k x -,2k x -用过1122(,()),(,()),(,())k k k k k k x f x x f x x f x ----的抛物线方程的根近似代替()0f x =的根,所得的迭代法称为抛物线法,也称密勒(Muller)法。
数值分析实验报告matlab
数值分析实验报告matlab数值分析实验报告引言:数值分析是一门研究利用计算机数值方法解决数学问题的学科,它在科学计算、工程设计、金融分析等领域具有重要的应用价值。
本实验报告旨在通过使用MATLAB软件,探索数值分析的基本原理和方法,并通过实际案例加深对数值分析的理解。
一、误差分析在数值计算中,误差是无法避免的。
误差分析是数值分析中的重要一环,它帮助我们了解数值计算的准确性和稳定性。
在实验中,我们通过计算机模拟了一个简单的数学问题,并分别计算了绝对误差和相对误差。
通过比较不同算法的误差大小,我们可以选择最适合的算法来解决实际问题。
二、插值与拟合插值和拟合是数值分析中常用的方法,它们可以通过已知的数据点来推导出未知数据点的近似值。
在本实验中,我们通过MATLAB的插值函数和拟合函数,分别进行了插值和拟合的实验。
通过比较不同插值和拟合方法的结果,我们可以选择最适合的方法来处理实际问题。
三、数值积分数值积分是数值分析中的重要内容,它可以用来计算曲线下的面积或函数的积分值。
在实验中,我们通过MATLAB的数值积分函数,对一些简单的函数进行了积分计算。
通过比较数值积分和解析积分的结果,我们可以评估数值积分的准确性和稳定性,并选择最适合的积分方法来解决实际问题。
四、常微分方程的数值解法常微分方程是数值分析中的重要内容,它可以用来描述许多自然现象和工程问题。
在实验中,我们通过MATLAB的常微分方程求解函数,对一些简单的微分方程进行了数值解法的计算。
通过比较数值解和解析解的结果,我们可以评估数值解法的准确性和稳定性,并选择最适合的数值解法来解决实际问题。
五、线性方程组的数值解法线性方程组是数值分析中的经典问题,它在科学计算和工程设计中广泛应用。
在实验中,我们通过MATLAB的线性方程组求解函数,对一些简单的线性方程组进行了数值解法的计算。
通过比较数值解和解析解的结果,我们可以评估数值解法的准确性和稳定性,并选择最适合的数值解法来解决实际问题。
数值分析实验报告(Matlab实现)(同名6593)
学生实验报告实验课程名称数值分析开课实验室数学与统计学院实验室学院2010 年级数学与应用数学专业班01班学生姓名学号开课时间2012 至2013 学年第一学期end y=x;format short ;% 设置为默认格式显示,显示5位(2) 建立MATLAB 界面利用MA TLAB 的GUI 建立如下界面求解线性方程组:详见程序。
五、 计算实例、数据、结果、分析下面我们对以上的结果进行测试,求解:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------725101391444321131243301024321x x x x 输入数据后点击和,得到如下结果:更改以上数据进行测试,求解如下方程组:123443211343212343112341x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦得到如下结果:六、 实验中遇到的问题及解决办法在本实验中,遇到的问题主要有两个:(1) 如何将上述的Gauss 消元法的算法在MA TLAB 中实现针对此问题我借鉴了网上以及 课本上的算法的MATLAB 实现的程序;(2) 如何将建立界面使得可以随意输入想要求解的相关矩阵后就可以直接求解针对此问题,我通过网上的一些关于MA TLAB 的GUI 设计的相关资料,总结经验完成了此项任务。
七、 实验结论通过以上的测试,我们发现以上算法和程序能够求出线性方程组的比较精确解。
八、 参考文献[1]杨大地,王开荣 .2006.数值分析.北京:科学出版社[2]何光辉.2008. 数值分析实验. 重庆大学数理学院数学实验教学中心 [3]百度文库,百度知道教师签名年 月 日详见程序。
五、计算实例、数据、结果、分析下面我们对以上的问题进行测试:输入数据:计算结果如下:当x=2.101时,x=4.234时,同理可以测试(4)中的5的值。
六、实验中遇到的问题及解决办法在本实验中,遇到的问题主要有两个:(3)如何将上述的插值的算法在MA TLAB中实现针对此问题我借鉴了网上以及课本上的算法的MATLAB实现的程序;(4)如何将建立界面使得可以随意输入想要求解的相关矩阵后就可以直接求解针对此问题,我通过网上的一些关于MA TLAB的GUI设计的相关资料,总结经验完成了此项任务。
matlab实验报告
matlab实验报告实验报告:Matlab实验分析1. 实验目的本实验旨在通过Matlab软件完成一系列数值计算和数据分析的任务,包括绘制曲线、解方程、矩阵运算等,以加深对Matlab软件的理解和掌握。
2. 实验内容2.1 绘制函数曲线首先,我们通过在Matlab中输入函数的表达式来绘制函数曲线。
例如,我们可以输入y = sin(x)来绘制正弦函数的曲线。
另外,我们还可以设置曲线的颜色、线型和坐标轴范围等。
2.2 解方程接下来,我们使用Matlab来解方程。
对于一元方程,我们可以使用solve函数来求出方程的解。
例如,我们输入syms x; solve(x^2 - 2*x - 8)来解方程x^2 - 2x - 8 = 0。
而对于多元方程组,我们可以使用solve函数的向量输入形式来求解。
例如,我们输入syms x y; solve(x^2 + y^2 - 1, x - y - 1)来求解方程组x^2 + y^2 - 1 = 0和x - y - 1 = 0的解。
2.3 矩阵运算Matlab也可以进行矩阵运算。
我们可以使用矩阵相乘、相加和取逆等运算。
例如,我们可以输入A = [1 2; 3 4]和B = [5 6;7 8]来定义两个矩阵,然后使用A * B来计算它们的乘积。
3. 实验结果与分析在本实验中,我们成功完成了绘制函数曲线、解方程和矩阵运算等任务。
通过Matlab软件,我们可以快速、准确地进行数值计算和数据分析。
使用Matlab的高级函数和工具箱,我们可以更方便地处理复杂的数值计算和数据分析问题。
4. 实验总结通过本次实验,我们进一步加深了对Matlab软件的理解和掌握。
Matlab提供了丰富的函数库和工具箱,适用于各种不同的数值计算和数据分析任务。
在日常科研和工程实践中,Matlab是一个非常强大和方便的工具,可以帮助我们更高效地完成任务。
数值分析matlab实验报告
数值分析matlab实验报告数值分析 Matlab 实验报告一、实验目的数值分析是研究各种数学问题数值解法的学科,Matlab 则是一款功能强大的科学计算软件。
本次实验旨在通过使用 Matlab 解决一系列数值分析问题,加深对数值分析方法的理解和应用能力,掌握数值计算中的误差分析、数值逼近、数值积分与数值微分等基本概念和方法,并培养运用计算机解决实际数学问题的能力。
二、实验内容(一)误差分析在数值计算中,误差是不可避免的。
通过对给定函数进行计算,分析截断误差和舍入误差的影响。
例如,计算函数$f(x) =\sin(x)$在$x = 05$ 附近的值,比较不同精度下的结果差异。
(二)数值逼近1、多项式插值使用拉格朗日插值法和牛顿插值法对给定的数据点进行插值,得到拟合多项式,并分析其误差。
2、曲线拟合采用最小二乘法对给定的数据进行线性和非线性曲线拟合,如多项式曲线拟合和指数曲线拟合。
(三)数值积分1、牛顿柯特斯公式实现梯形公式、辛普森公式和柯特斯公式,计算给定函数在特定区间上的积分值,并分析误差。
2、高斯求积公式使用高斯勒让德求积公式计算积分,比较其精度与牛顿柯特斯公式的差异。
(四)数值微分利用差商公式计算函数的数值导数,分析步长对结果的影响,探讨如何选择合适的步长以提高精度。
三、实验步骤(一)误差分析1、定义函数`compute_sin_error` 来计算不同精度下的正弦函数值和误差。
```matlabfunction value, error = compute_sin_error(x, precision)true_value = sin(x);computed_value = vpa(sin(x), precision);error = abs(true_value computed_value);end```2、在主程序中调用该函数,分别设置不同的精度进行计算和分析。
(二)数值逼近1、拉格朗日插值法```matlabfunction L = lagrange_interpolation(x, y, xi)n = length(x);L = 0;for i = 1:nli = 1;for j = 1:nif j ~= ili = li (xi x(j))/(x(i) x(j));endendL = L + y(i) li;endend```2、牛顿插值法```matlabfunction N = newton_interpolation(x, y, xi)n = length(x);%计算差商表D = zeros(n, n);D(:, 1) = y';for j = 2:nfor i = j:nD(i, j) =(D(i, j 1) D(i 1, j 1))/(x(i) x(i j + 1));endend%计算插值结果N = D(1, 1);term = 1;for i = 2:nterm = term (xi x(i 1));N = N + D(i, i) term;endend```3、曲线拟合```matlab%线性最小二乘拟合p = polyfit(x, y, 1);y_fit_linear = polyval(p, x);%多项式曲线拟合p = polyfit(x, y, n);% n 为多项式的次数y_fit_poly = polyval(p, x);%指数曲线拟合p = fit(x, y, 'exp1');y_fit_exp = p(x);```(三)数值积分1、梯形公式```matlabfunction T = trapezoidal_rule(f, a, b, n)h =(b a) / n;x = a:h:b;y = f(x);T = h ((y(1) + y(end))/ 2 + sum(y(2:end 1)));end```2、辛普森公式```matlabfunction S = simpson_rule(f, a, b, n)if mod(n, 2) ~= 0error('n 必须为偶数');endh =(b a) / n;x = a:h:b;y = f(x);S = h / 3 (y(1) + 4 sum(y(2:2:end 1))+ 2 sum(y(3:2:end 2))+ y(end));end```3、柯特斯公式```matlabfunction C = cotes_rule(f, a, b, n)h =(b a) / n;x = a:h:b;y = f(x);w = 7, 32, 12, 32, 7 / 90;C = h sum(w y);end```4、高斯勒让德求积公式```matlabfunction G = gauss_legendre_integration(f, a, b)x, w = gauss_legendre(5);%选择适当的节点数t =(b a) / 2 x +(a + b) / 2;G =(b a) / 2 sum(w f(t));end```(四)数值微分```matlabfunction dydx = numerical_derivative(f, x, h)dydx =(f(x + h) f(x h))/(2 h);end```四、实验结果与分析(一)误差分析通过不同精度的计算,发现随着精度的提高,误差逐渐减小,但计算时间也相应增加。
数值分析第二章MATLAB计算实验报告
数值分析MATLAB 计算实验报告姓名 班级 学号一、实验名称根据给定数据利用MATLAB 编程做出4次牛顿插值与三次样条插值的插值函数与被插值函数图形 二、实验目的1.理解牛顿插值的定义并且编写出与其算法对应的MATLAB 程序代码;2.了解三次样条插值的构造方法并且编写出与其算法对应的MATLAB 程序代码; 3.体会利用MATLAB 软件进行数值计算 。
三、实验内容已知函数在下列各点的值为:x i 0.2 0.4 0.6 0.8 1 .0 f(x i )0.980.920.810.640.38试用4次牛顿插值多项式P 4(x)及三样条函数S(x)(自然边界条件)对数据进行插值。
使用Matlab 软件用图给出{(x i ,y i ),x i =0.2+0.08i, i=0,1,11,10},P 4(x)及S(x) 四、算法描述 1.牛顿插值公式:P n (x)=f(x 0)+f[x 0,x 1](x-x 0)+f[x 0,x 1,x 2](x-x 0)(x-x 1)+… +f[x 0,x 1,…,x n ](x-x 0)…(x-x n-1),当n=4时,将插值点x i 及插值点对应的函数值f(x i )带入上式可得4次牛顿插值多项式。
2.三次样条插值:使用三弯矩法,令n i x s M i i ,,2,1,0),( =''=, 首先,以(x i ,M i ),(x i-1,M i-1)为结点作线性插值:i ii i i i M h x x M h x x x s 11)(---+--='',其中h i =x i -x i-1紧接着,连续积分两次:213131)(6)(6)(c x c x x h M x x h M x s i ii i i i ++-+-=--再利用插值条件11)(,)(--==i i i i y x s y x s)()6()()6()(6)(6)(1113131-------+--+-+-=i i ii i i i i i i i i i i i i x x h M h y x x h Mh y x x h M x x h M x sn i x x x i i ,,2,1,1 =≤≤-然后利用s '(x)在内结点连续的条件求M i ,s '(x i -0)=s '(x i +0))6()6()(2)(2)(112121i i i i i i i i i i i i i i h Mh y h M h y x x h M x x h M x s -+---+--='----ii ii i i i i i i i i h y y M M h x x h M x x h M 112121)(6)(2)(2-----+---+--=ii x x x ≤≤-11111211211)(6)(2)(2)(++++++++-+---+--='i ii i i i i i i i i i h y y M M h x x h M x x h M x s1+≤≤i i x x xii i i i i i i h y y M h M h x s 1163)0(---++=-'1111163)0(+++++-+--=+'i ii i i i i i h y y M h M h x s得i i i i i i i h y y M h M h 1163---++1111163+++++-+--=i ii i i i i h y y M h M hii i i i i i i i i i i i h y y h y y M h M h h M h 11111116)33(6-+++++----=+++)(62111111111ii i i i i i i i i i i i i i i i h y y h y y h h M h h h M M h h h -++++++-+---+=++++1,,2,1,211-==+++-n i M M M i i i i i i βαγ最后,根据三条边界条件,求出的值。
matlab数值计算实验报告
matlab数值计算实验报告Matlab数值计算实验报告一、实验目的本次实验的目的是通过使用Matlab软件进行数值计算,掌握Matlab的基本操作和数值计算方法,了解数值计算的基本原理和方法,提高数学建模和计算能力。
二、实验内容本次实验主要包括以下内容:1. Matlab基本操作:包括Matlab软件的安装、启动、界面介绍、基本命令和语法等。
2. 数值计算方法:包括数值积分、数值微分、线性方程组的求解、非线性方程的求解、插值和拟合等。
3. 数学建模:通过实际问题的建模,运用Matlab进行数值计算,得到问题的解答。
三、实验步骤1. Matlab基本操作(1)安装Matlab软件:根据官方网站提供的下载链接,下载并安装Matlab软件。
(2)启动Matlab软件:双击Matlab图标,启动Matlab软件。
(3)界面介绍:Matlab软件界面分为命令窗口、编辑器窗口、工作区窗口、命令历史窗口、变量编辑器窗口等。
(4)基本命令和语法:Matlab软件的基本命令和语法包括数学运算、矩阵运算、逻辑运算、控制语句等。
2. 数值计算方法(1)数值积分:使用Matlab中的quad函数进行数值积分,求解定积分。
(2)数值微分:使用Matlab中的diff函数进行数值微分,求解函数的导数。
(3)线性方程组的求解:使用Matlab中的inv函数和\运算符进行线性方程组的求解。
(4)非线性方程的求解:使用Matlab中的fsolve函数进行非线性方程的求解。
(5)插值和拟合:使用Matlab中的interp1函数进行插值和拟合。
3. 数学建模(1)实际问题的建模:选择一个实际问题,将其转化为数学模型。
(2)运用Matlab进行数值计算:使用Matlab进行数值计算,得到问题的解答。
四、实验结果通过本次实验,我掌握了Matlab的基本操作和数值计算方法,了解了数值计算的基本原理和方法,提高了数学建模和计算能力。
在实际问题的建模和运用Matlab进行数值计算的过程中,我深刻体会到了数学建模和计算的重要性,也发现了Matlab在数学建模和计算中的重要作用。
matlab实验报告
matlab实验报告实验名称:MATLAB数值分析实验报告摘要:本实验通过使用MATLAB软件,实现了一些数值分析中重要的算法,包括线性方程组求解、非线性方程求根、数值积分与微分以及常微分方程求解。
在算法实现的过程中,通过观察输出结果验证了算法的正确性和可靠性,并探讨了一些算法实现中需要注意的问题。
1.线性方程组求解线性方程组求解是数值分析中的重要算法之一,是很多数学问题的基础。
本实验中使用了三种求解线性方程组的算法:高斯消元法、LU分解法和共轭梯度法。
在实验中,我们需要注意选取矩阵的条件数,使用一些特殊矩阵,如对角矩阵、三对角矩阵和希尔伯特矩阵等来验证算法的正确性。
2.非线性方程求根非线性方程求根是MATLAB中一个非常实用的函数,能够快速解决大量的非线性方程。
本实验中,我们更深入地探讨了二分法、牛顿法和割线法等算法,通过实现代码,实现了对非线性方程的求解。
同时,对不同的算法进行比较,从而选择合适的算法。
3.数值积分与微分数值积分与微分是宏观物理中需要用到的重要数学问题之一。
本实验中,我们使用了梯形法、辛普森法和龙贝格法等多种数值积分算法实现了函数的数值积分。
同时,也对数值微分的误差和稳定性进行了研究和探讨。
4.常微分方程求解常微分方程求解是MATLAB中最常用的功能之一。
本实验中,我们实现了欧拉法、龙格-库塔法等常微分方程求解算法。
并不断尝试对算法进行改进,提高其效率和精度。
实验结果表明,使用MATLAB实现数值分析算法是非常可靠和高效的。
同时,也需要注意在算法实现中注意问题和选择合适的算法。
matlab数值分析实验报告
matlab数值分析实验报告Matlab数值分析实验报告引言数值分析是一门研究利用计算机进行数值计算和模拟的学科,它在科学计算、工程技术和金融等领域有着广泛的应用。
本次实验报告将介绍在Matlab环境下进行的数值分析实验,包括数值微分、数值积分和线性方程组求解等内容。
一、数值微分数值微分是通过数值方法计算函数的导数,常用的数值微分方法有前向差分、后向差分和中心差分。
在Matlab中,可以使用diff函数来计算函数的导数。
例如,对于函数f(x)=x^2,在Matlab中可以使用如下代码进行数值微分的计算:```matlabsyms x;f = x^2;df = diff(f, x);```二、数值积分数值积分是通过数值方法计算函数的定积分,常用的数值积分方法有梯形法则、辛普森法则和龙贝格积分法。
在Matlab中,可以使用trapz、quad和integral等函数来进行数值积分的计算。
例如,对于函数f(x)=sin(x),可以使用如下代码进行数值积分的计算:```matlabx = linspace(0, pi, 100);y = sin(x);integral_value = trapz(x, y);```三、线性方程组求解线性方程组求解是数值分析中的重要问题,常用的求解方法有高斯消元法和LU 分解法。
在Matlab中,可以使用\操作符来求解线性方程组。
例如,对于线性方程组Ax=b,可以使用如下代码进行求解:```matlabA = [1, 2; 3, 4];b = [5; 6];x = A\b;```四、实验结果与分析在本次实验中,我们分别使用Matlab进行了数值微分、数值积分和线性方程组求解的计算。
通过实验结果可以发现,Matlab提供了丰富的数值计算函数和工具,能够方便地进行数值分析的计算和求解。
数值微分的计算结果与解析解相比较,可以发现数值微分的误差随着步长的减小而减小,但是当步长过小时,数值微分的误差会受到舍入误差的影响。
数值分析matlab上机实验报告
数值分析matlab上机实验报告matlab软件实验报告数学上机课实验报告matlab实验报告总结数值分析试卷篇一:《MATLAB与数值分析》第一次上机实验报告标准实验报告(实验)课程名称学生姓名:李培睿学号:2013020904026指导教师:程建一、实验名称《MATLAB与数值分析》第一次上机实验二、实验目的1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算操作。
(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序)2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。
(用.m 文件编写进行符号因式分解和函数求反的程序)3. 掌握Matlab函数的编写规范。
4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、三维曲线和面的填充、三维等高线等。
(用.m 文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释)5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。
三、实验内容1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。
并以x,y为坐标显示图像x(n+1) = a*x(n)-b*(y(n)-x(n) ); y(n+1) = b*x(n)+a*(y(n)-x(n) )2. 编程实现奥运5环图,允许用户输入环的直径。
3. 实现对输入任意长度向量元素的冒泡排序的升序排列。
不允许使用sort函数。
四、实验数据及结果分析题目一:①在Editor窗口编写函数代码如下:并将编写的函数文件用“draw.m”储存在指定地址;②在Command窗口输入如下命令:③得到图形结果如下:题目二:①在Editor窗口编写函数代码如下:并将编写的函数文件用“circle.m”储存在指定地址;②再次在Editor窗口编写代码:并将编写的函数文件用“Olympic.m”储存在指定地址;③在Command窗口输入如下指令(半径可任意输入):④按回车执行,将在图形窗口获得五环旗:题目三:①在Editor窗口编写函数代码如下:并用.将编写的函数文件用“qipaofa.m”储存在指定地址;②在Command窗口输入一组乱序数值,则可以得到升序排序结果如下:五、总结及心得体会1. 要熟悉MATLAB编译软件的使用方法,明白有关语法,语句的基本用法,才可以在编写程序的时候游刃有余,不至于寸步难行。
数值分析MATLAB实验报告
实验 2.1 多项式插值的震荡现象问题提出:考虑在一个固定的区间上用插值逼近一个函数。
显然Lagrange 插值中使用的节点越多,插值多项式的次数越高,我们自然关心插值多项式的次数增加时,)(x L n 是否也更加靠近被逼近的函数。
Runge 给出的一个例子是极著名并富有启发性的。
设区间[-1,1]上函数.2511)(2xx f +=实验内容:考虑空间[-1,1]的一个等距划分,分点为 nix i 21+-=, =i 0,1,2 ...,n , 则拉格朗日插值多项式为)(2511)(02x l xx L ini n ∑=+=. 其中,n i x l i ,...,2,1,0),(=是n 次Lagrange 插值基函数。
实验要求:(1)选择不断增大的分点数目,...,3,2=n 画出原函数)(x f 及插值多项式函数)(x L n 在[-1,1]上的图像,比较并分析实验结果。
(2)选择其他的函数,例如定义在区间[-5,5]上的函数 ,1)(4xxx h +=)arctan()(x x g =, 重复上述的实验看其结果如何。
首先编写拉格朗日插值函数的Matlab 实现: Matlab 程序为:function y=lagrange(x0,y0,x) %Lagrange 插值 n=length(x0); m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if(j~=k)p=p*(z-x0(j))/(x0(k)-x0(j)); end ends=s+p*y0(k); endy(i)=s; end(1)当函数为.2511)(2xx f +=时, Matlab 程序为:x=linspace(-1,1,100); y=1./(1+25*x.^2); plot(x,y) hold on; for i=2:2:10x0=linspace(-1,1,i+1); y0=1./(1+25*x0.^2); y=laglanri(x0,y0,x); plot(x,y,'r--') hold on end运行结果:结果分析:从图上看到在区间[-1,1]的两端点附近,随着插值点数的增加,插值函数)(x L n 与)(x f 偏离的越远,而且出现了振荡现象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB数值分析实验报告
班级:072115
姓名:***
学号:***********
实验二:矩阵与向量运算
实验目的:在MATLAB里,会对矩阵与向量进行加、减、数乘、求逆及矩阵特征值运算,以及矩阵的LU分解。
设A是一个n×n方阵,X是一个n维向量,乘积Y=AX可以看作是n维空间变换。
如果能够找到一个标量λ,使得存在一个非零向量X,满足:AX=λX (3.1)则可以认为线性变换T(X)=AX将X映射为λX,此时,称X 是对应于特征值λ的特征向量。
改写式(3.1)可以得到线性方程组的标准形式:(A-λI)X=0 (3.2)式(3.2)表示矩阵(A-λI)和非零向量X的乘积是零向量,式(3.2)有非零解的充分必要条件是矩阵(A-λI)是奇异的,即:det(A-λI)=0
该行列式可以表示为如下形式:
a11–λa12 (1)
a21 a22 –λ…a2n =0 (3.3)
…………
A n1 a n2 …a nn
将式(3.3)中的行列式展开后,可以得到一个n阶多项式,称为特征多项式:
f(λ)=det(A-λI)=(-1)n(λn+c1λn-1+c2λn-2+…+c n-1λ+c n) (3.4) n阶多项式一共有n个根(可以有重根),将每个根λ带入式(3.2),可以得到一个非零解向量。
习题:求下列矩阵的特征多项式的系数和特征值λj:
3 -1 0
A= -1 2 -1
0-1 3
解:在MATLAB中输入命令:
A=【3 -1 0;-1 2 -1;0 -1 3】;
c=poly(A)
roots(c)
得到:
实验四:Lagrange插值多项式
实验目的:理解Lagrange插值多项式的基本概念,熟悉Lagrange插值多项式的公式源代码,并能根据所给条件求出Lagrange插值多项式,理解龙格现象。
%功能:对一组数据做Lagrange插值
%调用格式:yi=Lagran_(x,y,xi)
%x,y:数组形式的数据表
%xi:待计算y值的横坐标数组
%yi:用Lagrange还擦之算出y值数组
function fi=Lagran_(x,f,xi)
fi=zeros(size(xi));
np1=length(f);
for i=1:np1
z=ones(size(xi));
for j=i:np1
if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end
end
fi=fi+z*f(i);
end
return
习题:已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。
写出这四个数据点的Lagrange插值公式,并
计算出横坐标xi=【2.101,4.234】时对应的纵坐标。
解:4个数据点的Lagrange插值公式为:
L3(x)=3.3*(x-2.7)*(x-3.9)*(x-5.6)/(1.6-2.7)*(1.6-3.9)*(1.6-5.6) +4.22*(x-1.6)*(x-3.9)*(x-5.6)/(2.7-1.6)*(2.7-3.9)*(2.7-5.6) +3.9*(x-1.6)*(x-2.7)*(x-5.6)/(3.9-1.6)*(3.9-2.7)*(3.9-5.6) +2.94*(x-1.6)*(x-2.7)*(x-3.9)/(5.6-1.6)*(5.6-2.7)*(5.6-3.9) 清单:
Clear
x=[1.6,2.7,3.9,5.6];y=[3.3,1.22,5.61,2.94];
xi=[2.101,4.234];yi=Lagran_(x,y,xi);
xx=1.5:0.05:6.5;
yy=Lagran_(x,y,xx);
plot(xx,yy, x,y,’o’)
结果如下:
yi=1.0596 6.6457
实验六:牛顿插值多项式
实验目的:掌握牛顿插值多项式公式,会用牛顿插值多项式公式,明确牛顿插值多项式与拉格朗日插值公式的区别。
定理:已知n+1个节点x0,x1,…,x n,(a≤x0<x1<…<x n≤b)及节点对应的函数值f(x0),f(x1),…,f(x n)。
则唯一存在一个n次多项式N n(x),具有性质:
N n(x j)=f(x j)=y j j=0,1,2,…,n
该多项式形式为:
N n(x)=f(x0)+f[x0,x1](x-x0)+…+f[x0,x1,…,x n](x-x0)(x-x1)…(x-x n-1)
插值余项R(x)为:
R(x)=f(x)-N n(x)=f[x,x0,x1,x2,…,x n]w n+1(x)。
其中,f[x0,x1]=(f(x1)-f(x0))/(x1-x0),
f[x0,x1,x2]=(f[x1,x2]-f[x0,x1])/(x2-x1)…,
f[x0,x1,…,x n]=(f[x1,…,x n]-f[x0,x1,…,x n-1])/(x n-x n-1)。
牛顿插值多项式公式的优点是具有承袭性,当给出了n+1点坐标,求出N n(x)表达式后,再给出一个点坐标(x n+2,y n+2), 则有插值公式:
N n+1(x)=N n(x)+f[x0,x1,…,x n,x n+1](x-x0)(x-x1)…(x-x n-1)(x-x n)。
牛顿插值源代码:
function [C,D]=newpoly(X,Y)
%输入:X为节点的向量;Y为节点对应的函数值向量
%输出:C是牛顿插值多项式系数向量;D是计算差商的矩阵N=length(X); %节点的个数
D=zeros(n,n) %n×n维零矩阵
D(:1)=Y’%D的第一行Y(节点都应的函数值向量)for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));%计算商
end
end
C=D(n,n);
for k=(n-1):-1:1
C=conv(C,poly(X(k)) %计算插值多项式的系数
m=length(C);
C=C(m)+D(k,k);
end
习题:将区间【-5,5】等分5份、10份,求函数y=1/(1+x2)的牛顿插值多项式,作出函数y=1/(1+x2)的原图像,观察龙格现象得出什么结果?
解:将区间【-5,5】等分成5份,用MATLAB计算。
输入
clear,clf,hold on
X=-5:2:5;
Y=1./(1+X.^2);
[C,D]=newpoly(X,Y)
x=-5,0.01,5;
y=polyval(C,x);
plot(x,y,X,Y,’.’)
grid on
xp=-5,:0,05:5;
z=1./(1+xp.^2);
plot(xp,z,’r’)
出现错误如下:
此实验无法完成。
实验八:最小二乘拟合曲线
实验目的:明确曲线拟合的含义,会求数据的曲线拟合。
在科学工程试验中,经常需要从试验数据中寻找拟合曲线。
曲线拟合是指函数g(x)拟合给定的节点(x i ,y j ),i=1,2,…,n,通常所拟合的节点数n 必须大于未知数个数k 。
确定函数g(x)参数,使得拟合函数与节点的偏差最小,这种方法称为最小二乘法。
当n=k 时,由于拟合曲线通过所用节点,可使问题得到简化。
1. 数据的线性拟合
已知(x i ,y j ),i=1,2,…,n,最小二乘法拟合曲线:y=Ax+B 的系数是下列线性方程的解,
(∑=n k k x 12)A+(∑=n k k x 1)B=∑=n
k k k y x 1
(∑=n k k x 1)A+nB=∑=n
k k y 1
习题:给定一组数据点(-1,10),(0,9),(1,7),(2,5),(3,4),(4,3),(5,0),(6,-1),求其最小二乘拟合曲
线。
解:(1)在MATLAB 中作散点图。
输入数据点并作图:
x=[-1 0 1 2 3 4 5 6]; y=[10 9 7 5 4 3 0 -1]; plot(x,y,’.’) 得到
由上述散点图可知x,y 近似成线性关系y=Ax+B ,这里的A 与B 是待定常数。
(2)求解方程组:
(∑=81
2k k
x )A+(∑=81k k x )B=∑=81k k k y x (∑=81k k x )A+nB=∑=8
1k k y
(3)程序:
X=[-1 0 1 2 3 4 5 6];
Y=[10 9 7 5 4 3 0 -1];
Xmean=mean(X)
Ymean=mean(Y)
sumx2=(X-xmean)*(X-xmean)’; Sumxy=(Y-ymean)*(X-xmean)’; A=sumxy/sums2
B=ymean-A*xmean
x=-1:0.1:7;
y=A*x+B;
Plot(X,Y,’.’,x,y,’r’)
grid on
得最小二乘拟合曲线:
........忽略此处.......。