数值计算方法实验报告
数值计算实验报告实验总结
数值计算实验报告实验总结数值计算实验报告实验总结一、引言数值计算是一门研究利用计算机进行数值计算的学科,它在科学研究和工程实践中具有重要的应用价值。
本次实验旨在通过数值计算方法解决实际问题,探索数值计算的应用和局限性。
二、实验目的本次实验的主要目的是掌握数值计算的基本原理和方法,熟悉常见的数值计算工具和软件,提高数值计算的实践能力,为今后的科学研究和工程实践打下坚实的基础。
三、实验过程1. 实验一:二分法求方程根通过二分法求解非线性方程的根,首先根据方程的特点选择合适的初始区间,然后通过迭代逼近的方法找到方程的根。
实验中我们选择了一个简单的二次方程进行求解,通过不断缩小区间范围,最终得到了方程的根。
2. 实验二:线性方程组的求解线性方程组求解是数值计算中的重要问题之一。
我们使用了高斯消元法和LU分解法来求解一个具有特定系数矩阵的线性方程组。
通过比较两种方法的计算结果和效率,我们发现LU分解法在某些情况下能够更快速地求解线性方程组。
3. 实验三:插值与拟合插值与拟合是数值计算中常用的数据处理方法。
我们使用了拉格朗日插值和最小二乘法拟合的方法来处理给定的数据集。
通过将插值和拟合结果与原始数据进行对比,我们可以评估两种方法的准确性和适用性。
四、实验结果与分析通过实验,我们得到了一系列数值计算的结果。
根据实验结果,我们可以得出以下结论:1. 二分法求解方程根的方法在一定条件下是有效的,但是对于复杂的方程可能需要更多的迭代次数才能得到准确的结果。
2. 高斯消元法和LU分解法都可以用于求解线性方程组,但是在某些情况下LU 分解法的计算速度更快。
3. 拉格朗日插值和最小二乘法拟合都是常用的数据处理方法,但是在处理不同类型的数据时需要选择合适的方法。
五、实验总结通过本次实验,我们深入了解了数值计算的基本原理和方法,掌握了常见的数值计算工具和软件的使用。
实验中我们遇到了一些问题,但通过团队合作和积极探索,最终解决了这些问题。
数值计算实验报告
数值计算实验报告数值计算实验报告引言:数值计算是一门研究利用计算机进行数值计算的学科,它在科学研究和工程实践中具有重要的应用价值。
本实验报告旨在通过对数值计算实验的探索和分析,展示数值计算在解决实际问题中的应用和效果。
一、实验目的本次实验的主要目的是研究数值计算在求解非线性方程和数值积分中的应用。
通过实验,我们将探索不同数值计算方法的优劣,并分析其适用范围和精度。
二、实验原理1. 非线性方程求解非线性方程是指未知数与其系数之间存在非线性关系的方程。
常见的求解方法有二分法、牛顿法和割线法等。
本实验将比较不同方法在求解非线性方程时的收敛速度和计算精度。
2. 数值积分数值积分是通过将一个函数在一定区间上进行离散化,然后进行求和来近似计算定积分的方法。
本实验将使用复合梯形公式和复合辛普森公式来计算定积分,并比较两种方法的精度和计算效率。
三、实验步骤1. 非线性方程求解实验首先,我们选择一个非线性方程作为实验对象,例如:f(x) = x^3 - 2x - 5。
然后,我们使用二分法、牛顿法和割线法分别求解该方程,并记录每种方法的迭代次数和解的精度。
2. 数值积分实验我们选取一个函数作为被积函数,例如:f(x) = sin(x)。
然后,我们使用复合梯形公式和复合辛普森公式对该函数在一定区间上进行积分,并记录每种方法的计算结果和误差。
四、实验结果与分析1. 非线性方程求解结果通过实验,我们得到了使用二分法、牛顿法和割线法求解非线性方程的结果。
比较三种方法的迭代次数和解的精度,我们可以发现牛顿法收敛速度较快,但对初始值的选取较为敏感;割线法在收敛速度和精度上相对稳定;而二分法则收敛速度较慢,但对初始值的选取要求较低。
2. 数值积分结果通过实验,我们得到了使用复合梯形公式和复合辛普森公式进行数值积分的结果。
比较两种方法的计算结果和误差,我们可以发现复合辛普森公式具有更高的精度,但计算效率相对较低;而复合梯形公式计算速度较快,但精度相对较低。
数值计算方法实验报告
数值计算方法实验报告一、实验介绍本次实验是关于数值计算方法的实验,旨在通过计算机模拟的方法,实现对于数值计算方法的掌握。
本次实验主要涉及到的内容包括数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等。
二、实验内容1. 数值微积分数值微积分是通过计算机模拟的方法,实现对于微积分中的积分运算的近似求解。
本次实验中,我们将会使用梯形公式和辛普森公式对于一定区间上的函数进行积分求解,并比较不同公式的计算误差。
2. 线性方程组的求解线性方程组求解是数值计算领域中的重要内容。
本次实验中,我们将会使用高斯消元法、LU分解法等方法对于给定的线性方程组进行求解,并通过比较不同方法的计算效率和精度,进一步了解不同方法的优缺点。
3. 插值与拟合插值与拟合是数值计算中的另一个重要内容。
本次实验中,我们将会使用拉格朗日插值法和牛顿插值法对于给定的数据进行插值求解,并使用最小二乘法对于给定的函数进行拟合求解。
4. 常微分方程的数值解常微分方程的数值解是数值计算中的难点之一。
本次实验中,我们将会使用欧拉法和龙格-库塔法等方法对于给定的常微分方程进行数值解的求解,并比较不同方法的计算精度和效率。
三、实验结果通过本次实验,我们进一步加深了对于数值计算方法的理解和掌握。
在数值微积分方面,我们发现梯形公式和辛普森公式都能够有效地求解积分,但是辛普森公式的计算精度更高。
在线性方程组求解方面,我们发现LU分解法相对于高斯消元法具有更高的计算效率和更好的数值精度。
在插值与拟合方面,我们发现拉格朗日插值法和牛顿插值法都能够有效地进行插值求解,而最小二乘法则可以更好地进行函数拟合求解。
在常微分方程的数值解方面,我们发现欧拉法和龙格-库塔法都能够有效地进行数值解的求解,但是龙格-库塔法的数值精度更高。
四、实验总结本次实验通过对于数值计算方法的模拟实现,进一步加深了我们对于数值计算方法的理解和掌握。
在实验过程中,我们了解了数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等多个方面的内容,在实践中进一步明确了不同方法的特点和优缺点,并可以通过比较不同方法的计算效率和数值精度来选择合适的数值计算方法。
数值计算方法实习报告
实习报告实习单位:XX大学计算中心实习时间:2023年1月1日至2023年1月31日实习内容:数值计算方法一、实习背景及目的随着科技的不断发展,数值计算方法在工程、物理、化学、生物学等领域发挥着越来越重要的作用。
为了更好地将所学知识应用于实际问题,提高自己的实践能力,我选择了数值计算方法作为实习内容。
本次实习的主要目的是:1. 加深对数值计算方法的理解,掌握基本的数值计算方法及其应用。
2. 提高编程能力,熟练运用C语言进行数值计算程序的设计与实现。
3. 学会分析并解决实际问题,将所学知识运用到实际项目中。
二、实习过程及收获1. 实习前期,我首先学习了数值计算方法的基本理论,包括误差分析、插值法、数值积分、常微分方程数值解等。
通过理论的学习,我对数值计算方法有了更深入的了解。
2. 在实习过程中,我使用C语言编写了一系列数值计算程序,包括求解方程的迭代法、高斯消去法、牛顿法等。
这些程序可以帮助我更好地理解数值计算方法的理论,并提高我的编程能力。
3. 针对实际问题,我运用所学知识进行了解决。
例如,我使用数值积分方法计算了函数在一个区间上的定积分,使用常微分方程数值解方法求解了一个实际物理问题。
这些实践经历使我更加熟悉了数值计算方法在实际问题中的应用。
4. 实习期间,我还参加了计算中心组织的讲座和讨论,与其他实习生交流心得,共同解决问题。
这使我受益匪浅,不仅提高了自己的实际操作能力,还拓宽了知识面。
三、实习总结通过本次实习,我对数值计算方法有了更全面的认识,掌握了基本的数值计算方法及其编程实现。
同时,我的编程能力和解决实际问题的能力也得到了很大提高。
此外,我还学会了如何将所学知识应用于实际项目,为将来的工作打下了坚实基础。
在今后的工作中,我将继续努力学习数值计算方法及相关知识,不断提高自己的实践能力。
同时,我也将把所学知识运用到实际工作中,为公司的发展做出贡献。
最后,感谢计算中心给我提供了一次宝贵的实习机会,使我受益匪浅。
数值计算实验报告
一、实验目的1. 熟悉数值计算的基本原理和方法。
2. 掌握常用数值计算方法在数学建模和科学计算中的应用。
3. 培养运用计算机进行数值计算的能力。
二、实验内容1. 矩阵运算2. 解线性方程组3. 求函数的零点4. 解微分方程三、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 库:NumPy、SciPy、Matplotlib四、实验步骤及结果1. 矩阵运算(1)实验步骤:1)导入NumPy库;2)创建一个3x3的矩阵A;3)创建一个3x1的矩阵B;4)进行矩阵乘法运算:C = A B;5)打印结果。
(2)实验结果:A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]B = [[1], [2], [3]]C = A Bprint(C) # 输出:[[14], [32], [50]]2. 解线性方程组(1)实验步骤:1)导入NumPy库;2)创建一个3x3的系数矩阵A和一个3x1的常数向量b;3)使用NumPy的线性代数模块求解线性方程组:x = np.linalg.solve(A, b);4)打印结果。
(2)实验结果:A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]b = [2, 5, 6]x = np.linalg.solve(A, b)print(x) # 输出:[0.5, 0.5, 0.5]3. 求函数的零点(1)实验步骤:1)导入NumPy库;2)定义一个待求零点的函数f(x);3)使用NumPy的根求解器求f(x)的零点:x = np.roots(f(x));4)打印结果。
(2)实验结果:def f(x):return x2 - 4x = np.roots(f(x))print(x) # 输出:[2.0, -2.0]4. 解微分方程(1)实验步骤:1)导入SciPy库;2)定义一个微分方程函数ode_f,其中包含微分方程的系数;3)创建一个OdeSolver对象,并设置微分方程的初始条件;4)使用OdeSolver对象的solve方法求解微分方程;5)打印结果。
数值计算基础实验报告(3篇)
第1篇一、实验目的1. 理解数值计算的基本概念和常用算法;2. 掌握Python编程语言进行数值计算的基本操作;3. 熟悉科学计算库NumPy和SciPy的使用;4. 分析算法的数值稳定性和误差分析。
二、实验内容1. 实验环境操作系统:Windows 10编程语言:Python 3.8科学计算库:NumPy 1.19.2,SciPy 1.5.02. 实验步骤(1)Python编程基础1)变量与数据类型2)运算符与表达式3)控制流4)函数与模块(2)NumPy库1)数组的创建与操作2)数组运算3)矩阵运算(3)SciPy库1)求解线性方程组2)插值与拟合3)数值积分(4)误差分析1)舍入误差2)截断误差3)数值稳定性三、实验结果与分析1. 实验一:Python编程基础(1)变量与数据类型通过实验,掌握了Python中变量与数据类型的定义方法,包括整数、浮点数、字符串、列表、元组、字典和集合等。
(2)运算符与表达式实验验证了Python中的算术运算、关系运算、逻辑运算等运算符,并学习了如何使用表达式进行计算。
(3)控制流实验学习了if-else、for、while等控制流语句,掌握了条件判断、循环控制等编程技巧。
(4)函数与模块实验介绍了Python中函数的定义、调用、参数传递和返回值,并学习了如何使用模块进行代码复用。
2. 实验二:NumPy库(1)数组的创建与操作通过实验,掌握了NumPy数组的基本操作,包括创建数组、索引、切片、排序等。
(2)数组运算实验验证了NumPy数组在数学运算方面的优势,包括加、减、乘、除、幂运算等。
(3)矩阵运算实验学习了NumPy中矩阵的创建、操作和运算,包括矩阵乘法、求逆、行列式等。
3. 实验三:SciPy库(1)求解线性方程组实验使用了SciPy库中的线性代数模块,通过高斯消元法、LU分解等方法求解线性方程组。
(2)插值与拟合实验使用了SciPy库中的插值和拟合模块,实现了对数据的插值和拟合,并分析了拟合效果。
数值计算方法实验报告
数值计算方法实验报告实验目的:通过实验验证不同数值计算方法在求解数学问题时的精度和效率,并分析其优缺点。
实验原理:实验内容:本实验选取了三个典型的数值计算问题,并分别采用了二分法、牛顿迭代法和梯度下降法进行求解。
具体问题和求解方法如下:1. 问题一:求解方程sin(x)=0的解。
-二分法:利用函数值的符号变化将解空间不断缩小,直到找到满足精度要求的解。
-牛顿迭代法:通过使用函数的斜率来逼近方程的解,并不断逼近真实解。
-梯度下降法:将方程转化为一个极小化问题,并利用梯度下降的方式逼近极小值点,进而找到方程的解。
2.问题二:求解函数f(x)=x^2-3x+2的极小值点。
-二分法:通过确定函数在一个区间内的变化趋势,将极小值所在的区间不断缩小,从而找到极小值点。
-牛顿迭代法:通过使用函数的导数和二阶导数来逼近极小值点,并不断逼近真实解。
-梯度下降法:将函数转化为一个极小化问题,并利用梯度下降的方式逼近极小值点,进而找到函数的极小值点。
3. 问题三:求解微分方程dy/dx = -0.1*y的解。
-二分法:通过离散化微分方程,将微分方程转化为一个差分方程,然后通过迭代计算不同点的函数值,从而得到函数的近似解。
-牛顿迭代法:将微分方程转化为一个积分方程,并通过迭代计算得到不同点的函数值,从而得到函数的近似解。
-梯度下降法:将微分方程转化为一个极小化问题,并利用梯度下降的方式逼近极小值点,从而得到函数的近似解。
实验步骤:1.编写代码实现各个数值计算方法的求解过程。
2.对每个数值计算问题,设置合适的初始值和终止条件。
3.运行程序,记录求解过程中的迭代次数和每次迭代的结果。
4.比较不同数值计算方法的精度和效率,并分析其优缺点。
实验结果:经过实验测试,得到了如下结果:-问题一的二分法迭代次数为10次,求解结果为x=0;牛顿迭代法迭代次数为4次,求解结果为x=0;梯度下降法迭代次数为6次,求解结果为x=0。
-问题二的二分法迭代次数为10次,求解结果为x=1;牛顿迭代法迭代次数为3次,求解结果为x=1;梯度下降法迭代次数为4次,求解结果为x=1-问题三的二分法迭代次数为100次,求解结果为y=e^(-0.1x);牛顿迭代法迭代次数为5次,求解结果为y=e^(-0.1x);梯度下降法迭代次数为10次,求解结果为y=e^(-0.1x)。
数值计算实验报告
数值计算方法实验实验名称:解线性方程组的迭代法班级:宿舍:成员:实验三解线性方程组的迭代法一、实验目的用雅克比和高斯-赛尔迭代法解线性方程组Ax=b,式中A为非奇异矩阵。
再给定迭代初值的情况下,进行迭代,知道满足精度要求。
二、实验方法(1)雅克比迭代法1、实验程序雅克比迭代法的MATLAB函数文件agui_jacobi.m如下。
function x=agui_jacobi(a,b)n=length(b);N=100;e=1e-4;x0=zeros(n,1);x=x0;x0=x+2*e;k=0;d=diag(diag(a));l=-tril(a,-1);u=-triu(a,1);while norm(x0-x,inf)>e&k<Nk=k+1;x0=x;x=inv(d)*(1+u)*x+inv(d)*b;kdisp(x')endif k==Nwarning('已达最大迭代次数');end2、雅克比迭代法源程序3.在MATLAB命令窗口输入如下。
>> a=[4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -14 -1;0 0 -1 0 -1 4]>> b=[0;5;-2;5;-2;6]>> x=agui_jacobi(a,b)4、实验结果截图该程序运行后得到一个错误的结果,如下图:5、实验程序修改将实验程序中x0=zeros(n,1);修改为x0=b; ,去掉n=length(b);后得下图源程序:得到结果为下图,仍然为错误结果(2)高斯-赛尔迭代法1、实验程序高斯-赛尔迭代法的MATLAB函数文件agui_ gauss.m如下。
function x=agui_gauss(a,b)n=length(b);N=100;e=1e-4;x0=zeros(n,1);x=x0;x0=x+2*e;k=0;a1=tril(a);a2=inv(a1);while norm(x0-x,inf)>e&k<Nk=k+1;x0=x;x=-a2*(a-a1)*x0+a2*b;kdisp(x')endif k==Nwarning('已达最大迭代次数');end2、高斯-赛尔迭代法源程序3、在MATLAB命令窗口输入如下。
数值计算方法实验报告
一、实验目的1. 熟悉数值计算的基本概念和方法;2. 掌握数值计算的基本原理和算法;3. 提高编程能力和数值计算能力;4. 通过实验,加深对数值计算方法的理解和应用。
二、实验内容1. 矩阵运算2. 线性方程组求解3. 函数求值4. 微分方程求解三、实验步骤1. 矩阵运算(1)编写程序实现矩阵的加法、减法、乘法运算;(2)编写程序实现矩阵的转置运算;(3)编写程序实现矩阵的逆运算。
2. 线性方程组求解(1)编写程序实现高斯消元法求解线性方程组;(2)编写程序实现雅可比迭代法求解线性方程组;(3)编写程序实现高斯-赛德尔迭代法求解线性方程组。
3. 函数求值(1)编写程序实现牛顿迭代法求函数的零点;(2)编写程序实现二分法求函数的零点;(3)编写程序实现割线法求函数的零点。
4. 微分方程求解(1)编写程序实现欧拉法求解一阶微分方程;(2)编写程序实现龙格-库塔法求解一阶微分方程;(3)编写程序实现龙格-库塔-法求解二阶微分方程。
四、实验结果与分析1. 矩阵运算(1)矩阵加法、减法、乘法运算结果正确;(2)矩阵转置运算结果正确;(3)矩阵逆运算结果正确。
2. 线性方程组求解(1)高斯消元法求解线性方程组,结果正确;(2)雅可比迭代法求解线性方程组,结果正确;(3)高斯-赛德尔迭代法求解线性方程组,结果正确。
3. 函数求值(1)牛顿迭代法求函数的零点,结果正确;(2)二分法求函数的零点,结果正确;(3)割线法求函数的零点,结果正确。
4. 微分方程求解(1)欧拉法求解一阶微分方程,结果正确;(2)龙格-库塔法求解一阶微分方程,结果正确;(3)龙格-库塔-法求解二阶微分方程,结果正确。
五、实验总结本次实验通过对数值计算方法的学习和实践,使我对数值计算有了更深入的了解。
以下是我对本次实验的总结:1. 矩阵运算是数值计算的基础,熟练掌握矩阵运算对于解决实际问题具有重要意义;2. 线性方程组求解是数值计算中常见的问题,高斯消元法、雅可比迭代法和高斯-赛德尔迭代法是常用的求解方法;3. 函数求值是数值计算中另一个常见问题,牛顿迭代法、二分法和割线法是常用的求解方法;4. 微分方程求解是数值计算中的难点,欧拉法、龙格-库塔法和龙格-库塔-法是常用的求解方法。
计算方法实验报告
1. 熟悉并掌握常用的计算方法,包括数值积分、数值微分、线性方程组求解等。
2. 培养运用计算机进行数值计算的能力。
3. 增强对数值计算误差的分析和判断能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 库:NumPy、SciPy、Matplotlib三、实验内容1. 数值积分(1)函数:f(x) = x^2(2)区间:[0, 1](3)方法:梯形法、辛普森法、复合梯形法2. 数值微分(1)函数:f(x) = e^x(2)点:x = 1(3)方法:有限差分法、中点法、牛顿法3. 线性方程组求解(1)方程组:2x + 3y - z = 8-x + 2y + 2z = -3x - y + 3z = 5(2)方法:高斯消元法、LU分解法1. 数值积分(1)编写函数f(x) = x^2(2)定义积分区间[0, 1](3)实现梯形法、辛普森法、复合梯形法(4)计算积分结果2. 数值微分(1)编写函数f(x) = e^x(2)定义点x = 1(3)实现有限差分法、中点法、牛顿法(4)计算导数结果3. 线性方程组求解(1)定义方程组系数矩阵A和常数向量b(2)实现高斯消元法、LU分解法(3)求解方程组(4)输出解向量x五、实验结果与分析1. 数值积分(1)梯形法:积分结果约为1.6667(2)辛普森法:积分结果约为1.6447(3)复合梯形法:积分结果约为1.6458分析:三种方法计算结果接近,但辛普森法误差最小。
2. 数值微分(1)有限差分法:导数结果约为2.7183(2)中点法:导数结果约为2.7183(3)牛顿法:导数结果约为2.7183分析:三种方法计算结果一致,误差较小。
3. 线性方程组求解(1)高斯消元法:解向量x = [2, 1, 1](2)LU分解法:解向量x = [2, 1, 1]分析:两种方法求解结果一致,且解向量正确。
六、实验总结本次实验通过Python编程,实现了数值积分、数值微分和线性方程组求解。
数值计算方法实验报告(含所有)
本科实验报告课程名称:计算机数值方法实验项目:计算机数值方法实验实验地点:虎峪校区致远楼B401专业班级:软件学院1217班学号:******xxxx 学生姓名:xxx指导教师:xxx2014 年 5 月21 日太原理工大学学生实验报告五、实验结果与分析二分法割线法分析:由程序知,使用二分法和割线法均能计算出方程的根,但利用割线法要比二分法计算的次数少,并且能够较早的达到精度要求。
相比之下,割线法程序代码量较少,精简明了。
六、讨论、心得本次数值计算方法程序设计实验从习题练习中跳脱出来,直接面对实用性较强的程序代码编写。
效果很好,不仅加深对二分法、割线法的理解,还加强了实际用运能力。
将理论知识成功地转化成实践结果。
实验地点虎峪校区致远楼B401指导教师xx太原理工大学学生实验报告l[i][k]=a[i][k];for(r=1;r<k;++r){l[i][k]-=l[i][r]*u[r][k];}l[i][k]/= u[k][k];}l[k][k]=1.0;}for(i=1;i<=n;++i){y[i] = b[i];for(j=1;j<i;++j){y[i]-=l[i][j]*y[j];}}for(i=n;i>0;--i){x[i] = y[i];for(j=i+1;j<=n;++j){x[i]-=u[i][j]*x[j];}x[i]/= u[i][i];}for(i=1;i<=n;++i){printf("%0.2lf\n",x[i]);}return 0;}五、实验结果与分析完全主元素消元法:列主元素消元法:LU分解法:分析:对于两种高斯解方程,完全主元素跟列主元素都是先消元、再回代,由程序段可以发现,始终消去对角线下方的元素。
即,为了节约内存及时效,可以不必计算出主元素下方数据。
列主元素消元法的算法设计上优于完全主元素消元法,它只需依次按列选主元素然后换行使之变到主元素位置,再进行消元即可。
数值计算方法实验报告
数值计算方法实验报告一、实验目的本实验旨在通过Python语言编写数值计算方法程序,掌握常见数值计算方法的实现原理及应用。
具体包括:插值法、最小二乘法、数值微积分、数值解方程、数值解微分方程等。
二、实验环境Python编程语言、Jupyter Notebook环境三、实验内容1.插值法(1)代码实现:在Python中使用Scipy库中的Interpolate模块实现拉格朗日插值法和牛顿插值法,并通过数据可视化展示其效果。
(2)实验步骤:- 导入所需库,准备所需数据;- 定义拉格朗日插值法函数;- 定义牛顿插值法函数;- 测试函数并可视化结果。
(3)实验结果:2.最小二乘法(1)代码实现:在Python中使用Numpy库实现最小二乘法,并通过数据可视化展示其效果。
(2)实验步骤:- 导入所需库,准备所需数据;- 定义最小二乘法函数;- 测试函数并可视化结果。
(3)实验结果:3.数值微积分(1)代码实现:在Python中实现梯形法和辛普森法,并通过数据可视化展示其效果。
(2)实验步骤:- 导入所需库,准备所需数据;- 定义梯形法函数和辛普森法函数;- 测试函数并可视化结果。
(3)实验结果:4.数值解方程(1)代码实现:在Python中实现二分法、牛顿法和割线法,并通过数据可视化展示其效果。
(2)实验步骤:- 导入所需库,准备所需数据;- 定义二分法函数、牛顿法函数和割线法函数;- 测试函数并可视化结果。
(3)实验结果:5.数值解微分方程(1)代码实现:在Python中实现欧拉法和龙格-库塔法,并通过数据可视化展示其效果。
(2)实验步骤:- 导入所需库,准备所需数据;- 定义欧拉法函数和龙格-库塔法函数;- 测试函数并可视化结果。
(3)实验结果:四、实验总结通过本次实验,我学习了数值计算方法的常用算法和实现原理,掌握了Python 语言实现数值计算方法的方法,加深了对数值计算方法的理解和应用。
实验中遇到的问题,我通过查找资料和与同学的讨论得到了解决,也更加熟练地掌握了Python语言的使用。
计算方法数值实验报告
计算方法数值实验报告(一)班级:0902 学生:苗卓芳 倪慧强 岳婧实验名称: 解线性方程组的列主元素高斯消去法和LU 分解法实验目的: 通过数值实验,从中体会解线性方程组选主元的必要性和LU 分解法的优点,以及方程组系数矩阵和右端向量的微小变化对解向量的影响。
实验内容:解下列两个线性方程组(1) ⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--11134.981.4987.023.116.427.199.103.601.3321x x x (2) ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----15900001.582012151526099999.23107104321x x x x 解:(1) 用熟悉的算法语言编写程序用列主元高斯消去法和LU 分解求解上述两个方程组,输出Ax=b 中矩阵A 及向量b, A=LU 分解的L 及U ,detA 及解向量。
①先求解第一个线性方程组⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--11134.981.4987.023.116.427.199.103.601.3321x x x在命令窗口中运行A=[3.01,6.03,1.99;1.27,4.16,-1.23;0.987,-4.81,9.34] 可得A =3.0100 6.0300 1.99001.2700 4.1600 -1.23000.9870 -4.8100 9.3400b=[1,1,1]可得b =1 1 1H =det(A)可得 H =-0.0305列主元高斯消去法:在命令窗口中运行function x=Gauss_pivot(A,b)、A=[3.01,6.03,1.99;1.27,4.16,-1.23;0.987,-4.81,9.34];b=[1,1,1];n=length(b);x=zeros(n,1);c=zeros(1,n);dl=0;for i=1:n-1max=abs(A(i,i));m=i;for j=i+1:nif max<abs(A(j,i))max=abs(A(j,i));m=j;endendif(m~=i)for k=i:nc(k)=A(i,k);A(i,k)=A(m,k);A(m,k)=c(k);enddl=b(i);b(i)=b(m);b(m)=dl;endfor k=i+1:nfor j=i+1:nA(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);endb(k)=b(k)-b(i)*A(k,i)/A(i,i);A(k,i)=0;endendx(n)=b(n)/A(n,n);for i=n-1:-1:1sum=0;for j=i+1:nsum =sum+A(i,j)*x(j);endx(i)=(b(i)-sum)/A(i,i);end经程序可得实验结果ans =1.0e+003 *1.5926-0.6319-0.4936LU分解法:在命令窗口中运行function x=lu_decompose(A,b)A=[3.01,6.03,1.99;1.27,4.16,-1.23;0.987,-4.81,9.34];b=[1,1,1];L=eye(n);U=zeros(n,n);x=zeros(n,1);c=zeros(1,n);for i=1:nU(1,i)=A(1,i);if i==1;L(i,1)=1;elseL(i,1)=A(i,1)/U(1,1);endendfor i=2:nfor j=i:nsum=0;for k=1:i-1sum =sum+L(i,k)*U(k,j);endU(i,j)=A(i,j)-sum;Ifj~=nsum=0;for k=1:i-1sum=sum+L(j+1,k)*U(k,i);endL(j+1,i)=(A(j+1,i)-sum)/U(I,i);endendendy(1)=b(1);for k=2:nsum=0;forj=1:k-1sum=sum+L(k,j)*y (j);endy(k)=b(k)-sum;endx(n)=y(n)/U(n,n);260页最后一行c(k)=A(i,k);A(i,k)=A(m,k);A(m,k)=c(k);enddl=b(i);b(i)=b(m);b(m)=dl;endfor k=i+1:nfor j=i+1:nA(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);endb(k)=b(k)-b(i)*A(k,i)/A(i,i);A(k,i)=0;endendx(n)=b(n)/A(n,n);for i=n-1:-1:1sum=0;for j=i+1:nsum =sum+A(i,j)*x(j);endx(i)=(b(i)-sum)/A(i,i);end经程序可得结果ans =1.0e+003 *1.5926-0.6319-0.4936②再求解第二个线性方程组⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----15900001.582012151526099999.23107104321x x x x 即A=[10,-7,0,1;-3,2.099999,6,2;5,-1,5,-1;2,1,0,2];b=[8,5.900001,5,1];重复上述步骤可的结果为ans =0.0000-1.00001.00001.0000(2)将方程组(1)中系数3.01改为3.00,0.987改为0.990,用列主元高斯消去法求解变换后的方程组,输出列主元行交换次序,解向量x 及detA ,并与(1)中结果比较。
数值计算方法实验报告
数值计算方法实验报告实验目的:本次实验的目的是通过对数值计算方法的实践操作,加深对该方法的理解和掌握。
具体来说,本次实验旨在通过使用 MATLAB 软件对一些常见的数值计算问题进行求解,从而掌握和熟练运用一些数值计算方法,如插值、数值微积分、常微分方程数值解等。
实验过程:1.插值(1) Lagrange 插值法(2) Newton 插值法2.数值微积分(1) 梯形公式(2) Simpson 公式3.常微分方程数值解(1) 古典四步 Runge-Kutta 法(2) 改进四步 Runge-Kutta 法实验结果:本次实验中,我们使用 MATLAB 软件对以上数值计算问题进行了求解,成功得到了相应的数值解,并且通过分析和比较不同的数值计算方法的结果,得出了以下结论:1.在插值问题中,Lagrange 插值法和 Newton 插值法的结果相对较为接近,但是 Newton 插值法的计算速度更快。
2.在数值微积分问题中,梯形公式的结果较为精确,但是 Simpson 公式的精度更高。
3.在常微分方程数值解问题中,古典四步 Runge-Kutta 法和改进四步 Runge-Kutta 法均能得到较为准确的结果,但是改进四步Runge-Kutta 法的精度更高,尤其对于复杂的常微分方程求解有更好的效果。
实验结论:本次实验通过对数值计算方法的实践操作,深入理解了该方法的原理和运用,掌握了一些重要的数值计算方法,如插值、数值微积分、常微分方程数值解等,并且通过实验结果的分析比较,得出了相应的结论。
这些知识和技能对于我们在科研和工程实践中的数值计算问题具有非常重要的意义,具有广泛的应用前景。
数值分析计算方法实验报告
数值分析计算方法实验报告实验报告:数值分析计算方法摘要:数值计算方法是现代科学与工程领域中常用的重要工具。
本实验通过对比分析三种不同的数值计算方法,包括二分法、牛顿迭代法和弦截法的优劣,以及在实际问题中的应用。
实验结果表明,不同的数值计算方法适用于不同的问题,合理选择方法可以提高计算的精度和效率。
一、引言在科学研究和工程实践中,很多问题并不能通过解析方法得到精确解。
数值计算方法可以通过近似计算得到问题的数值解,为科学研究和工程设计提供可靠依据。
本实验主要研究三种常见的数值计算方法,即二分法、牛顿迭代法和弦截法,并通过实例验证其有效性和适用性。
二、方法介绍1.二分法:二分法是一种简单但有效的数值计算方法,适用于通过连续函数的反函数求解根的问题。
其基本思想是将查找区间通过中点划分为两个子区间,根据函数值的符号变化,选择新的查找区间,直到满足精度要求为止。
2.牛顿迭代法:牛顿迭代法是一种基于函数导数的数值计算方法,适用于求解非线性方程的根的问题。
其基本思想是通过对初始值的不断迭代来逼近方程的根,在每次迭代中利用切线的斜率来更新迭代值。
3.弦截法:弦截法是一种近似求解非线性方程根的数值计算方法。
其基本思想是通过初始两个近似解的连线与坐标轴交点的位置,来逼近真实解。
在每次迭代中,通过计算连线与坐标轴的交点来更新迭代值,直到满足精度要求为止。
三、实验内容1.实现二分法、牛顿迭代法和弦截法的数值计算算法;2.通过给定的实例,在同样的精度要求下对三种方法进行比较;3.分析并总结三种方法的优缺点及适用范围。
四、实验结果通过对比实例的计算结果可得到如下结果:1.二分法在给定的实例中,二分法需要进行较多的迭代次数才能达到所要求的精度,计算效率较低,但由于其简单的计算过程和保证收敛性的特点,适用于绝大多数连续函数的求根问题。
2.牛顿迭代法牛顿迭代法的计算速度快且稳定,收敛速度相对较快,但对初始值的选择要求较高。
如果初始值选择不当,可能会导致迭代结果发散。
数值计算方法实验报告
数值计算方法实验报告数值计算方法实验报告引言:数值计算方法是一种通过数学模型和计算机算法来解决实际问题的方法。
在科学研究和工程应用中,数值计算方法被广泛应用于求解方程、优化问题、模拟仿真等领域。
本实验报告将介绍数值计算方法的基本原理和实验结果。
一、二分法求根二分法是一种通过不断折半缩小搜索区间来求解方程根的方法。
在实验中,我们选取了一个简单的方程f(x) = x^2 - 4 = 0来进行求根实验。
通过不断将搜索区间进行二分,我们可以逐步逼近方程的根。
实验结果表明,通过二分法,我们可以得到方程的根为x = 2。
二、牛顿迭代法求根牛顿迭代法是一种通过不断逼近方程根的方法。
在实验中,我们同样选取了方程f(x) = x^2 - 4 = 0进行求根实验。
牛顿迭代法的基本思想是通过对方程进行线性近似,求得近似解,并不断迭代逼近方程的根。
实验结果表明,通过牛顿迭代法,我们可以得到方程的根为x = 2。
三、高斯消元法求解线性方程组高斯消元法是一种通过变换线性方程组的系数矩阵,将其化为上三角矩阵的方法。
在实验中,我们选取了一个简单的线性方程组进行求解实验。
通过对系数矩阵进行行变换,我们可以将其化为上三角矩阵,并通过回代求解得到方程组的解。
实验结果表明,通过高斯消元法,我们可以得到线性方程组的解为x = 1,y = 2,z = 3。
四、插值与拟合插值与拟合是一种通过已知数据点来构造函数模型的方法。
在实验中,我们选取了一组数据点进行插值与拟合实验。
通过拉格朗日插值多项式和最小二乘法拟合,我们可以得到数据点之间的函数模型。
实验结果表明,通过插值与拟合,我们可以得到数据点之间的函数关系,并可以通过该函数模型来进行预测和拟合。
结论:数值计算方法是一种通过数学模型和计算机算法来解决实际问题的方法。
通过本次实验,我们学习了二分法求根、牛顿迭代法求根、高斯消元法求解线性方程组以及插值与拟合的基本原理和应用。
这些方法在科学研究和工程应用中具有广泛的应用前景。
数值计算方法实验报告
数值计算方法实验报告实验目的:本实验的目的是了解数值计算方法的基本原理和应用,掌握数值计算方法的基本步骤和算法,熟练运用数值计算方法解决实际问题。
实验内容:1. 基本数值计算方法的实现,如二分法、牛顿迭代法、弦截法等。
2. 常微分方程数值解法的实现,如欧拉法、龙格-库塔法等。
3. 常微分方程组数值解法的实现,如欧拉法、龙格-库塔法等。
4. 线性方程组数值解法的实现,如高斯消元法、LU分解法等。
5. 插值与拟合的实现,如拉格朗日插值、牛顿插值、最小二乘法等。
实验步骤:1. 根据教材或参考资料,了解数值计算方法的基本原理和应用。
2. 根据实验内容和要求,选择相应的数值计算方法,编写程序实现。
3. 运用编写的程序,解决给定的数值计算问题,分析计算结果。
4. 根据实验结果,总结数值计算方法的优缺点及应用范围。
实验要求:1. 熟练掌握数值计算方法的基本原理和应用,能够灵活运用数值计算方法解决实际问题。
2. 编写程序时,注意代码的简洁性、可读性和可维护性。
3. 实验数据要求准确,计算结果要仔细分析,结果要清晰明了地展示。
4. 实验报告要求格式规范,内容全面、准确、详细,表述清晰,思路流畅,使用正确的数学符号和术语。
结论:数值计算方法是一种重要的数学工具,在很多领域有广泛应用。
本实验通过编写程序,实现了基本数值计算方法、常微分方程数值解法、常微分方程组数值解法、线性方程组数值解法、插值与拟合等方法,通过实例计算,分析了计算结果,总结了数值计算方法的优缺点及应用范围。
此次实验提高了我们的数学计算和编程能力,对我们今后的学习和工作有很大帮助。
数值计算方法实验报告
数值计算方法实验报告一、实验目的本实验旨在通过数值计算方法的实验操作,深入理解数值计算方法的原理与应用,掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
二、实验内容1.数值微积分2.数值代数3.数值微分方程4.数值线性代数5.数值优化6.数值统计分析7.数值随机模拟8.数值傅立叶分析9.数值偏微分方程三、实验步骤1.数值微积分:通过不同的数值积分方法,计算给定函数的定积分值,并对不同数值积分方法的误差进行分析。
2.数值代数:通过使用线性代数方法,求解给定的线性方程组,并分析不同线性方程组求解方法的优劣。
3.数值微分方程:通过使用常微分方程数值解法,求解给定的微分方程,并比较不同求解方法的精度和稳定性。
4.数值线性代数:通过使用特征值分解方法,对给定的矩阵进行特征值分解,并分析不同特征值分解方法的优缺点。
5.数值优化:通过使用不同的优化方法,求解给定的优化问题,并比较不同的优化方法的效率和精度。
6.数值统计分析:通过使用不同的统计分析方法,对给定的数据进行统计分析,并分析不同的统计方法的优缺点。
7.数值随机模拟:通过使用随机模拟方法,模拟给定的概率分布,并分析不同随机模拟方法的效率和精度。
8.数值傅立叶分析:通过使用傅立叶分析方法,对给定的信号进行频谱分析,并分析不同的傅立叶分析方法的优缺点。
9.数值偏微分方程:通过使用偏微分方程数值解法,求解给定的偏微分方程,并比较不同求解方法的精度和稳定性。
四、实验结果与分析本实验中,通过对不同的数值计算方法的实验操作,我们可以更深入地理解数值计算方法的原理与应用,并掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
同时,通过实验结果的分析,我们可以更好地比较不同数值计算方法的优缺点,为实际应用提供参考依据。
五、实验总结本实验旨在通过数值计算方法的实验操作,深入理解数值计算方法的原理与应用,掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
数值计算的实验报告
一、实验目的1. 熟悉数值计算的基本原理和方法。
2. 掌握常用的数值计算算法及其应用。
3. 提高数值计算软件的使用能力。
4. 培养分析问题和解决问题的能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 数值计算软件:NumPy、SciPy、Matplotlib三、实验内容1. 实验一:数值积分(1)实验目的:学习数值积分方法,计算定积分的近似值。
(2)实验内容:a. 使用辛普森法则计算函数f(x) = x^2在区间[0, 1]上的定积分。
b. 使用梯形法则计算函数f(x) = e^x在区间[0, 1]上的定积分。
(3)实验步骤:a. 编写Python代码,实现辛普森法则和梯形法则。
b. 分别使用两种方法计算定积分的近似值。
c. 对比两种方法的计算结果,分析误差来源。
2. 实验二:数值微分(1)实验目的:学习数值微分方法,计算函数在某点的导数近似值。
(2)实验内容:a. 使用中心差分法计算函数f(x) = sin(x)在x = π/2处的导数近似值。
b. 使用前向差分法和后向差分法计算函数f(x) = cos(x)在x = 0处的导数近似值。
(3)实验步骤:a. 编写Python代码,实现中心差分法、前向差分法和后向差分法。
b. 分别使用三种方法计算导数的近似值。
c. 对比三种方法的计算结果,分析误差来源。
3. 实验三:线性方程组求解(1)实验目的:学习线性方程组求解方法,掌握高斯消元法和迭代法。
(2)实验内容:a. 使用高斯消元法求解线性方程组:3x + 2y - z = 72x - y + 3z = -1-x + 2y + 2z = 4b. 使用雅可比迭代法求解线性方程组:3x + 2y - z = 72x - y + 3z = -1-x + 2y + 2z = 4(3)实验步骤:a. 编写Python代码,实现高斯消元法和雅可比迭代法。
b. 分别使用两种方法求解线性方程组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
差值法实验日志实验题目:插值法实验目的:1.掌握拉格朗日插值、牛顿插值、分段低次插值和样条插值的方法。
2.对四种插值结果进行初步分析。
实验要求:(1)写出算法设计思想;(2)程序清单;(3)运行的结果;(4)所得图形;(5)四种插值的比较;(6)对运行情况所作的分析以及本次调试程序所取的经验。
如果程序未通过,应分析其原因。
实验主要步骤:1.已知函数)f满足:(xx0.0 0.1 0.195 0.3 0.4010.5f(0.39894 0.39695 0.39142 0.38138 0.36812x)0.35206(1)用分段线性插值;打开MATLAB,按以下程序输入:x0=-5:5;y0=1./(1+x0.^2);x=-5:0.1:5;y=1./(1+x.^2);y1=lagr(x0,y0,x);y2=interp1(x0,y0,x);y3=spline(x0,y0,x);for k=1:11xx(k)=x(46+5*k);yy(k)=y(46+5*k);yy1(k)=y1(46+5*k);yy2(k)=y2(46+5*k);yy3(k)=y3(46+5*k); end[xx;yy;yy2;yy3]'z=0*x;plot(x,z,x,y,'k--',x,y2,'r') plot(x,z,x,y,'k--',x,y1,'r') pauseplot(x,z,x,y,'k--',x,y3,'r') 回车得以下图形:(2) 拉格朗日插值。
创建M 文件,建立lagr 函数:function y=lagr1(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end新建一个M 文件,输入:x0=[0.0 0.1 0.195 0.3 0.401 0.5];y0=[0.39894 0.39695 0.39142 0.38138 0.36812 0.35206];x=0.0:0.01:0.5;y1=lagr1(x0,y0,x);00.10.20.30.40.50.60.70.80.91[x',y1'];plot(x0,y0,'k+',x,y1,'r')得以下图形:矩阵的特征值和特征向量实验日志实验题目:矩阵的特征值和特征向量实验目的:1..掌握乘幂法、反幂法、雅可比方法和QR方法。
2.分析、比较四中求解矩阵特征值和特征向量的方法实验要求:(1)写出算法设计思想;(2)程序清单;(3)运行的结果;(4)所得图形;(5)四种插值的比较;(6)对运行情况所作的分析以及本次调试程序所取的经验。
如果程序未通过,应分析其原因。
实验主要步骤:1.用乘幂法求矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=131********A 的按模最大的特征值及相应的特征向量,取T X )1,5.0,5.0(0=,要求至少迭代6次。
用MATLAB 实现,程序如下:A=[4,-1,1;16,-2,-2;16,-3,-1];X=[0.5,0.5,1]';for k=1:10;Y=A*X;m=max(abs(Y));dc=abs(lambda-m);Y=(1/m)*Y;dv=norm(X-Y);err(k)=max(dc,dv)X=Y;lambda=m;endmax_lamdba=m ;V=X;plot(err);结果:err =5.5000err =5.5000 1.9545err =5.5000 1.9545 1.1469err =5.5000 1.9545 1.1469 1.2442err =5.5000 1.9545 1.1469 1.2442 1.2033err =5.5000 1.9545 1.1469 1.2442 1.2033 1.2091err =5.5000 1.9545 1.1469 1.2442 1.2033 1.2091 1.2066 err =Columns 1 through 75.5000 1.9545 1.1469 1.2442 1.2033 1.2091 1.2066 Column 81.2069err =Columns 1 through 75.5000 1.9545 1.1469 1.2442 1.2033 1.2091 1.2066 Columns 8 through 91.2069 1.2068err =Columns 1 through 75.5000 1.9545 1.1469 1.2442 1.2033 1.20911.2066Columns 8 through 101.2069 1.2068 1.2068max_lamdba = 3.4419V =0.54051.00001.0000图形:2.用反幂法计算矩阵 1234567891011.522.533.544.555.5⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=410131012A 相应于特征值1.2679的特征向量。
用MATLAB 实现,程序如下:y=[1,1,1]';z=y;d=0;A=[2,1,0;1,3,1;0,1,4];for k=1:100;AA=A-1.2679*eye(3);y=AA\z;[c,i]=max(abs(y));if y(i)<0,c=-c;endz=y/c;if abs(c-d)<0.0001,break;endd=c;endd=1.2679+1/c;d =6.7764e+003;d =2.0327e+004;d =2.0328e+004;d =1.2679;曲线拟合的最小二乘法 实验日志实验题目:插曲线拟合的最小二乘法实验目的:1.掌握拉格朗日插值、牛顿插值、分段低次插值和样条插值的方法。
2.对四种插值结果进行初步分析。
实验要求:(1)写出算法设计思想;(2)程序清单;(3)运行的结果;(4)所得图形;(5)对运行情况所作的分析以及本次调试程序所取的经验。
如果程序未通过,应分析其原因。
实验主要步骤:1.试用最小二乘法求形如2=的多项式,使以下列数据拟合y+abxx 19 25 31 38 44y 19.0 32.4 49.1 73.3 97.5 用MATLAB实现,程序如下:x=[19,25,31,38,44];y=[19.0,32.4,49.1,73.3,97.5];p=polyfit(x,y,2);y6to10=polyval(p,[6:10]);plot(x,y,'o',[x 6:10],polyval(p,[1:10]))结果图:2.用最小二乘法求形如xy ln=的经验公式,使其与数据+abx 1 2 3 4y 2.5 3.4 4.1 4.4相拟合。
(计算取4位小数)。
用MATLAB实现,程序如下:x=[1,2,3,4];y=[2.5,3.4,4.1,4.4];p=polyfit(x,y,1);y6to10=polyval(p,[5:10]);plot(x,y,'o',[x 5:10],polyval(p,[1:10]))得结果如图:数值积分实验日志实验题目:数值积分一、实验目的:1.掌握几种数值积分方法。
2.掌握几种数值求导方法。
实验要求:1.题目;2.写出算法设计思想;3.程序清单;4.运行的结果;5.所得图形;6.对运行情况所作的分析以及本次调试程序所取的经验。
如果程序未通过,应分析其原因。
实验主要步骤:e x,并估计误差。
(计算取5位小1.用梯形公式和辛浦生公式计算积分⎰-10dx数)。
解:主要步骤:用MATLAB实现,程序如下:function zinta=0;b=1;d=0.05;x=a:d:b;y=func(x);format long;y_trapz=trapz(y)*d;y_simps=quad(@func,a,b);y_accurt=eval(int('exp(-t)',a,b));y_trapz_error=y_trapz-y_accurt;y_simps_error=y_simps-y_accurt;plot(x,exp(-x),'o-');function y=func(x);y=exp(-x);所得结果如下:y_trapz =0.63225224512482y_simps =0.63212056020538y_accurt =0.63212055882856y_trapz_error =1.316862962581489e-004y_simps_error =1.376819436238463e-009所得图形为:2. 用龙贝格法求积分⎰-=102dx e I x π,要求误差不超过510-。
(计算取6位小数)用MATLAB 实现,程序如下:format long ;it=int('(2/sqrt(pi))*exp(-x)',0,1); Accurate=eval(it);y=inline('(2/sqrt(pi))*exp(-x)');得答案:y_trapz =0.63225224512482y_simps =0.63212056020538y_accurt =0.63212055882856y_trapz_error =1.316862962581489e-004y_simps_error =1.376819436238463e-009it =-2*(exp(-1)-1)/pi^(1/2)Accurate =0.71327166967492y =Inline function:y(x) = (2/sqrt(pi))*exp(-x)。