数值积分与数值微分实验报告
- 格式:doc
- 大小:36.00 KB
- 文档页数:3
数值分析实验报告四数值积分与数值微分实验(2学时)一 实验目的1.掌握复化的梯形公式、Simpson 公式等牛顿-柯特斯公式计算积分。
2. 掌握数值微分的计算方法。
二 实验内容1. 用复化梯形公式计算积分。
⎰90dx x M=82. 用复化Simpson 公式计算积分。
⎰90dx x M=8 3. 给定下列表格值利用四点式(n=3)求)50()50('''f f 和的值。
三 实验步骤(算法)与结果1复化梯形公式用C 语言编程如下:#include<stdio.h>#include<math.h>/*被积函数的定义*/float f(float x){float y;y=sqrt(x);return y;}void main(){int i,m;float a,b,h,r;printf("输入等分数m:" );scanf("%d",&m);printf("输入区间左端点a的值:"); scanf("%f",&a);printf("输入区间右端点b的值:"); scanf("%f",&b);float x[m+1];h=(b-a)/m;for(i=0;i<=m;i++)x[i]=a+i*h;r=0;for(i=0;i<=m;i++){if(i==0) r=r+h*0.5*f(x[i]);if(i>0&&i<m) r=r+h*f(x[i]);if(i==m) r=r+0.5*h*f(x[i]);}printf("输出区间[%3.1f %3.1f]的积分值:%f\n",a,b,r); }求解结果如下:输入等分数m:8输入区间左端点a的值:0输入区间右端点b的值:9输出区间[0.0 9.0]的积分值:17.7695142复化Simpson公式用C语言编程如下:#include<stdio.h>#include<math.h>/*被积函数的定义*/float f(float x){float y;y=sqrt(x);return y;}void main(){int i,m;float a,b,h,r;printf("输入等分数m:" );scanf("%d",&m);printf("输入区间左端点a的值:"); scanf("%f",&a);printf("输入区间右端点b的值:"); scanf("%f",&b);float x[m+1];h=(b-a)/m;for(i=0;i<=m;i++)x[i]=a+i*h;r=0;for(i=0;i<=m;i++){if(i==0) r=r+h*f(x[i])/3;if(i>0&&i<m){ if(i%2==0)r=r+h*2*f(x[i])/3; else r=r+h*4*f(x[i])/3;}if(i==m) r=r+h*f(x[i])/3;}printf("输出区间[%3.1f %3.1f]的积分值:%f\n",a,b,r); }求解结果如下:输入等分数m:8输入区间左端点a的值:0输入区间右端点b的值:9输出区间[0.0 9.0]的积分值:17.9031393求导数值用C语言编程如下:#include<stdio.h>int n;/*拉格朗日多项式函数的一阶导函数的定义*/float g1(float *x,float *y,float z){int i,j,k;float r,m,s;s=0;for(i=0;i<n;i++){ m=0;for(j=0;j<n;j++){if(j!=i){ r=1;for(k=0;k<n;k++)if(k!=i&&k!=j) r=r*(z-x[k]); m=m+r*y[i];}}r=1;for(j=0;j<n;j++)if(j!=i)r=r*(x[i]-x[j]);s=s+m/r;}return s;}/*拉格朗日多项式函数的二阶导函数的定义*/ float g2(float *x,float *y,float z){int i,j,k,p;float r,m,s,w;s=0;for(i=0;i<n;i++){w=0;for(j=0;j<n;j++){if(j!=i){m=0;for(k=0;k<n;k++){if(k!=i&&k!=j){ r=1;for(p=0;p<n;p++)if(p!=k&&p!=j&&p!=i)r=r*(z-x[p]); m=m+r*y[i];}}w=w+m;}}r=1;for(j=0;j<n;j++)if(j!=i)r=r*(x[i]-x[j]);s=s+w/r;}return s;}void main(){int i,j;float f1,x0,f2;printf("输入节点数n:");scanf("%d",&n);float x[n],y[n];printf("输入向量x:");for(i=0;i<n;i++)scanf("%f",&x[i]);printf("输入向量y:");for(i=0;i<n;i++)scanf("%f",&y[i]);printf("********************\n"); printf("输入1****求一阶导数\n"); printf("输入2****求二阶导数\n"); printf("********************\n"); printf("选择操作1-2:");scanf("%d",&j);switch(j){case 1:printf("输入求导处的x:");scanf("%f",&x0);f1=g1(x,y,x0);printf("x=%3.1f处的一阶导数值%f\n",x0,f1); break;case 2:printf("输入求导处的x:");scanf("%f",&x0);f2=g2(x,y,x0);printf("x=%3.1f处的二阶导数值%f\n",x0,f2); break;}}求解结果如下:输入节点数n:4输入向量x:50 55 60 65输入向量y:1.6690 1.7404 1.7782 1.8129********************输入1****求一阶导数输入2****求二阶导数********************选择操作1-2:1输入求导处的x:50x=50.0处的一阶导数值0.019673输入节点数n:4输入向量x:50 55 60 65输入向量y:1.6990 1.7404 1.7782 1.8129 ********************输入1****求一阶导数输入2****求二阶导数********************选择操作1-2:2输入求导处的x:50x=50.0处的二阶导数值-0.000164。
数值计算方法实验报告一、实验介绍本次实验是关于数值计算方法的实验,旨在通过计算机模拟的方法,实现对于数值计算方法的掌握。
本次实验主要涉及到的内容包括数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等。
二、实验内容1. 数值微积分数值微积分是通过计算机模拟的方法,实现对于微积分中的积分运算的近似求解。
本次实验中,我们将会使用梯形公式和辛普森公式对于一定区间上的函数进行积分求解,并比较不同公式的计算误差。
2. 线性方程组的求解线性方程组求解是数值计算领域中的重要内容。
本次实验中,我们将会使用高斯消元法、LU分解法等方法对于给定的线性方程组进行求解,并通过比较不同方法的计算效率和精度,进一步了解不同方法的优缺点。
3. 插值与拟合插值与拟合是数值计算中的另一个重要内容。
本次实验中,我们将会使用拉格朗日插值法和牛顿插值法对于给定的数据进行插值求解,并使用最小二乘法对于给定的函数进行拟合求解。
4. 常微分方程的数值解常微分方程的数值解是数值计算中的难点之一。
本次实验中,我们将会使用欧拉法和龙格-库塔法等方法对于给定的常微分方程进行数值解的求解,并比较不同方法的计算精度和效率。
三、实验结果通过本次实验,我们进一步加深了对于数值计算方法的理解和掌握。
在数值微积分方面,我们发现梯形公式和辛普森公式都能够有效地求解积分,但是辛普森公式的计算精度更高。
在线性方程组求解方面,我们发现LU分解法相对于高斯消元法具有更高的计算效率和更好的数值精度。
在插值与拟合方面,我们发现拉格朗日插值法和牛顿插值法都能够有效地进行插值求解,而最小二乘法则可以更好地进行函数拟合求解。
在常微分方程的数值解方面,我们发现欧拉法和龙格-库塔法都能够有效地进行数值解的求解,但是龙格-库塔法的数值精度更高。
四、实验总结本次实验通过对于数值计算方法的模拟实现,进一步加深了我们对于数值计算方法的理解和掌握。
在实验过程中,我们了解了数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等多个方面的内容,在实践中进一步明确了不同方法的特点和优缺点,并可以通过比较不同方法的计算效率和数值精度来选择合适的数值计算方法。
实验四数值微积分实验报告实验四:数值微积分实验目的:1. 熟悉数值微积分的基本概念和方法;2. 学习使用Python进行数值积分和数值微分的计算;3. 掌握积分和微分的误差分析。
实验仪器:计算机、Python编程环境实验原理:1. 数值微积分是一种使用数值近似计算积分和微分的方法,适用于无法用解析方法求解的函数,或是为了简化计算过程而采用的方法。
2. 数值积分的常用方法有矩形法、梯形法和辛普森法等。
其中,矩形法是通过将区间分成若干小矩形来近似计算积分值;梯形法是通过将区间分成若干小梯形来近似计算积分值;辛普森法是通过将区间分成若干小曲线来近似计算积分值。
3. 数值微分的常用方法有中心差分法和向前差分法等。
其中,中心差分法是通过用相邻两点的斜率的平均值来近似计算导数值;向前差分法是通过用当前点和下一个点的斜率来近似计算导数值。
实验步骤:1. 导入Python所需的库和模块;2. 编写函数f(x),表示待求解的函数;3. 编写函数rectangular_rule(f, a, b, n),实现矩形法求积分;4. 编写函数trapezoidal_rule(f, a, b, n),实现梯形法求积分;5. 编写函数simpsons_rule(f, a, b, n),实现辛普森法求积分;6. 编写函数central_difference(f, x, h),实现中心差分法求导数;7. 编写函数forward_difference(f, x, h),实现向前差分法求导数;8. 调用以上函数,分别计算给定函数的积分和导数,并对结果进行误差分析;9. 打印输出实验结果。
实验结果:给定函数f(x):f(x) = x^3 + 2x^2 - 3x + 1使用矩形法计算积分,取n=1000,得到积分值为:-1.155使用梯形法计算积分,取n=1000,得到积分值为:-1.156使用辛普森法计算积分,取n=1000,得到积分值为:-1.155使用中心差分法计算导数,取x=1.0,h=0.001,得到导数值为:6.0使用向前差分法计算导数,取x=1.0,h=0.001,得到导数值为:4.0实验结论:1. 数值微积分是一种有效的数值计算方法,适用于无法用解析方法求解的函数;2. 在积分计算中,不同的数值积分方法会得到略有不同的结果,但结果误差一般很小;3. 在数值微分中,中心差分法的结果更加精确,但计算量较大;4. 数值微积分的误差分析是一个重要的环节,需要对结果进行误差评估和控制。
数值积分实验报告数值积分实验报告导言:数值积分是数学中的一个重要概念,它在实际应用中具有广泛的意义。
本实验旨在通过数值积分方法,探索如何近似计算函数的积分值,并对结果进行分析和比较。
一、实验目的本实验的主要目的有以下几点:1. 了解数值积分的基本概念和原理;2. 掌握常见的数值积分方法,如矩形法、梯形法和辛普森法;3. 进行实际函数的数值积分计算,并与解析解进行对比。
二、实验原理1. 数值积分的基本概念数值积分是一种通过将函数曲线下的面积近似分解为多个小矩形、梯形或抛物线的面积之和,从而计算函数积分值的方法。
常见的数值积分方法有矩形法、梯形法和辛普森法。
2. 矩形法矩形法是一种简单的数值积分方法,它将函数曲线下的面积近似为多个矩形的面积之和。
常见的矩形法有左矩形法、右矩形法和中矩形法。
3. 梯形法梯形法是一种更精确的数值积分方法,它将函数曲线下的面积近似为多个梯形的面积之和。
梯形法的计算公式为:积分值≈ (b-a) * (f(a) + f(b)) / 2,其中a和b为积分区间的上下限。
4. 辛普森法辛普森法是一种更加精确的数值积分方法,它将函数曲线下的面积近似为多个抛物线的面积之和。
辛普森法的计算公式为:积分值≈ (b-a) * (f(a) +4f((a+b)/2) + f(b)) / 6。
三、实验步骤1. 确定积分区间和函数表达式;2. 根据所选的数值积分方法,编写相应的计算代码;3. 运行代码,得到数值积分的结果;4. 将数值积分的结果与解析解进行对比,并分析误差。
四、实验结果与分析在本次实验中,我们选择了函数 f(x) = x^2 在区间 [0, 1] 上进行积分计算。
根据不同的数值积分方法,得到的结果如下:1. 矩形法:- 左矩形法:积分值≈ 0.25- 右矩形法:积分值≈ 0.5- 中矩形法:积分值≈ 0.3752. 梯形法:积分值≈ 0.3753. 辛普森法:积分值≈ 0.3333与解析解进行对比,我们可以发现不同的数值积分方法得到的结果与解析解(积分值为 1/3)存在一定的误差。
第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。
通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。
二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。
实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。
2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。
实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。
3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。
实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。
4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。
它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。
实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。
三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。
2. 选取几个不同的函数,对积分区间进行划分。
3. 使用不同方法计算积分近似值,并与实际积分值进行比较。
4. 分析不同方法的精度和效率。
四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。
2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。
3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。
4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。
实验二数值积分实验一. 实验目的(1)熟悉数值积分与数值微分方法的基本思想,加深对数值积分与数值微分方法的理解。
(2)熟悉Matlab编程环境,利用Matlab实现具体的数值积分与数值微分方法。
二. 实验要求用Matlab软件实现复化梯形方法、复化辛甫生方法、龙贝格方法和高斯公式的相应算法,并用实例在计算机上计算。
三.实验内容1. 实验题目已知x(-+=的数据表)1xef x4sin Array分别编写用复化梯形法、复化辛甫生公法、龙贝格法、三点高斯法求积分⎰=10)(dxfIx近似值的计算机程序。
2. 设计思想1.复化Simpson公式:设计Simpson公式,即为设计含有3个节点(即为3阶精度)的Newton-Cotes 公式。
将区间划分为3等份,选取等分点作为求积节点构造求积公式,具有三阶精度的Simpson公式。
将区间[a,b]划分为n等分,步长为h=(b-a)/n,等分点xi=a+i*h,i=0,1,2,3…。
设计复化求积法,先用低阶求积公式求得每个子段上的积分值,然后再将它们累加求和,用各段积分之和作为所求积分的近似值。
即设计出复化Simpson公式。
2.复化梯形公式:将区间[a,b]划分为n等分,步长为h=(b-a)/n,等分点xi=a+i*h,i=0,1,2,3…。
设计复化求积法,先用低阶求积公式求得每个子段上的积分值,然后再将它们累加求和,用各段积分之和作为所求积分的近似值。
再根据梯形公式即可设计出复化梯形公式。
3.Romberg公式:再加工Cotes值。
将积分区间[a,b]划分为8等份,等分点xi=a+i*(b-a)/8,i=0,1,2…,8,则二分前后的Cotes值可求,再对求得的Cotes公式进行松弛,提高精度,设计出Romberg公式。
4.三点Gauss公式:根据Newton-Cotes公式,但对求积节点自由选择,适当选取待定参数使公式具有高精度,即设计出Gauss公式。
数值积分与数值微分
实验5.1 (高斯数值积分方法用于积分方程求解)
问题提出:线性的积分方程的数值求解,可以被转化为线性代数方程组的求解问题。
而线性代数方程组所含未知数的个数,与用来离散积分的数值方法的节点个数相同。
在节点数相同的前提下,高斯数值积分方法有较高的代数精度,用它通常会得到较好的结果。
实验内容:选用复合梯形公式,复合Simpson 公式,变步长梯形法,Romberge 积分法,Gauss 积分计算
(1) 0e cos x I xdx π=
⎰; (I ≈-12.0703463164)
(2) 1/0I =
⎰ (I ≈0.4987111175752) (3) 10sin x I dx x =
⎰ (f(0)=1, I ≈0.9460831)
实验前的预备知识:
1、 深刻认识数值积分法的意义;
2、 明确数值积分精度与步长的关系;
3、 根据定积分的计算方法,可以考虑二重积分的计算问题。
4、 比较各种积分方法复杂度及收敛速度。
实验方法或步骤:
1、 编制数值积分算法的程序;
2、 分别用两种算法计算同一个积分 并比较其结果;
3、 分别取不同步长h=(b-a)/n,试比较计算结果(如n=10,20等);
4、 给定精度要求ε,试用变步长算法,确定最佳步长。
数值积分与数值微分实验报告-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN实验三 数值积分程序设计算法1)实验目的通过本次实验熟悉并掌握各种数值积分算法及如何在matlab 中通过设计程序实现这些算法,从而更好地解决实际中的问题。
2)实验题目给出积分 dx x I ⎰-=32211 1.用Simpson 公式和N=8的复合Simpson 公式求积分的近似值.2.用复合梯形公式、复合抛物线公式、龙贝格公式求定积分,要求绝对误差为 710*21-=ε,将计算结果与精确解做比较,并对计算结果进行分析。
3)实验原理与理论基础Simpson 公式 )]()2(4)([6b f b a f a f a b S +++-=复化梯形公式将定积分⎰=b a dx x f I )(的积分区间],[b a 分隔为n 等分,各节点为n j jh a x j ,,1,0, =+= na b h -=复合梯形(Trapz)公式为 ])()(2)([211∑-=++-=n j j n b f x f a f n a b T 如果将],[b a 分隔为2n 等分,而n a b h /)(-=不变,则 )]()(2)(2)([41021112b f x f x f a f n a b T n j j n j j n +++-=∑∑-=+-= 其中h j a h x x j j )21(2121++=+=+,)]()(2)(2)([41021112b f x f x f a f n a b T n j j n j j n +++-=∑∑-=+-= ∑-=-++-+=10)2)12((221n j n na b j a f n a b T n=1时,a b h -=,则)]()([21b f a f a b T +-=)0(0T = )21(22112h a f a b T T +-+=)1(0T = 若12-=k n ,记)1(0-=k T T n , ,2,1=k 12--=k a b h jh a x j +=12--+=k a b j a h x x j j 2121+=+k a b j a 2)12(-++=,则可得如下递推公式)0(0T )]()([2b f a f a b +-= ∑-=--++-+-=120001)2)12((2)1(21)(k j k k a b j a f a b k T k T k=1,2, 即为梯形递推公式。
数值分析实验报告四数值积分与数值微分实验(2学时)一 实验目的1.掌握复化的梯形公式、辛扑生公式等牛顿-柯特斯公式计算积分。
2. 会用高斯公式计算积分。
3. 掌握数值微分的计算方法。
二 实验内容1.分别用复化的梯形公式和辛扑生公式计算积分。
⎰90dx x M=4 2.给定下列表格值利用四点式(n=3)求)50()50('''f f 和的值。
三 实验步骤(算法)与结果1复化的梯形公式:()()()()01121222bM M a h h h f x dx f f f f f f b a h M -=+++++-=⎰基于上述公式,进行编程,程序代码如下:#include"stdio.h"#include"math.h"#define M 4int main(){float a=9,b=0;int i;float h;float x[M+1];float f=0;h=(a-b)/M;for(i=0;i<M+1;i++){x[i]=b+h*i;}for(i=0;i<M;i++){f=f+h/2*((sqrt(x[i]))+(sqrt(x[i+1])));}printf("\n%f\n",f);return 0;}运行结果如下:复化的辛扑生公式:()()()()01351246243323bM M a M h h f x dx f f f f f f h f f f f b ah M--=+++++++++++-=⎰基于上述公式,进行编程计算,程序代码如下: #include"stdio.h"#include"math.h"#define M 4int main(){float a=9,b=0;int i;float h;float x[M+1];float f=0;h=(a-b)/M;for(i=0;i<M+1;i++){x[i]=b+h*i;}for(i=0;i<M/2;i++){f=f+(h/3)*((sqrt(x[2*i]))+4*(sqrt(x[2*i+1]))+(sqrt(x[2*i+2]))); }printf("\n%f\n",f);return 0;}运算结果如下:2一阶和二阶数值微分公式四点式:()()()()'00123''00123211118926112302466f x y y y y h f x y y y y h ≈-+-+≈-+-基于上述公式,进行编程计算,程序代码如下: #include"stdio.h"int main(){float x[4]={50,55,60,65};float y[4]={1.6990,1.7404,1.7782,1.8129};float f1,f2;float h=x[1]-x[0];f1=(1/(6*h))*(-11*y[0]+18*y[1]-9*y[2]+2*y[3]); f2=(1/(6*h*h))*(12*y[0]-30*y[1]+24*y[2]-6*y[3]);printf("f1=%f",f1);printf("\nf2=%f",f2);return 0;}运算结果如下:四实验收获与教师评语。
一、实习背景随着科学技术的飞速发展,数值分析在各个领域都得到了广泛的应用。
为了更好地掌握数值分析的基本理论和方法,提高自己的实践能力,我于2023年暑期参加了某科技有限公司的数值分析实习。
二、实习内容1. 数值微分在实习期间,我首先学习了数值微分的基本理论和方法。
通过实际操作,我掌握了使用中心差分法、前向差分法和后向差分法计算函数在某点的导数。
在实际应用中,我使用这些方法对工程问题中的函数进行了导数计算,为后续的数值积分和数值求解提供了基础。
2. 数值积分接下来,我学习了数值积分的基本理论和方法。
在实习过程中,我掌握了梯形法则、辛普森法则和柯特斯法则等数值积分方法。
通过实际操作,我能够对函数进行数值积分,并在实际工程问题中应用这些方法。
3. 线性方程组求解线性方程组在数值分析中具有广泛的应用。
在实习期间,我学习了高斯消元法、LU 分解法、Cholesky分解法等求解线性方程组的方法。
通过实际操作,我能够对大规模线性方程组进行求解,并在实际工程问题中应用这些方法。
4. 最优化方法最优化方法是数值分析中的重要分支。
在实习期间,我学习了梯度下降法、牛顿法、共轭梯度法等最优化方法。
通过实际操作,我能够对实际问题进行最优化求解,并在实际工程问题中应用这些方法。
5. 数值求解微分方程微分方程在科学研究和工程应用中具有重要作用。
在实习期间,我学习了欧拉法、龙格-库塔法等数值求解微分方程的方法。
通过实际操作,我能够对微分方程进行数值求解,并在实际工程问题中应用这些方法。
三、实习收获1. 提高了数值分析的理论水平。
通过实习,我对数值分析的基本理论和方法有了更深入的理解。
2. 增强了实际操作能力。
在实习过程中,我熟练掌握了各种数值分析方法的实际操作,提高了自己的动手能力。
3. 培养了团队合作精神。
在实习过程中,我与团队成员密切合作,共同完成实习任务,提高了自己的团队协作能力。
4. 了解了数值分析在工程应用中的重要性。
一、实验目的1. 理解积分的概念和基本性质。
2. 掌握数值积分的方法,包括矩形法、梯形法、辛普森法等。
3. 通过实际计算,加深对积分概念的理解。
二、实验原理积分是微积分学中的一个基本概念,表示一个函数在某区间内的累积变化量。
数值积分是指利用数值方法求解积分,常见的方法有矩形法、梯形法、辛普森法等。
1. 矩形法:将积分区间分成若干等份,用每个小区间的宽度乘以函数在该区间的值,再将所有小区间的乘积相加,得到积分的近似值。
2. 梯形法:将积分区间分成若干等份,用每个小区间的宽度乘以函数在该区间的平均值,再将所有小区间的乘积相加,得到积分的近似值。
3. 辛普森法:将积分区间分成若干等份,用每个小区间的宽度乘以函数在该区间的二次多项式近似值,再将所有小区间的乘积相加,得到积分的近似值。
三、实验步骤1. 选择一个具体的积分问题,例如:计算函数f(x) = x^2在区间[0,1]上的积分。
2. 根据所选择的积分方法,设置相应的参数。
例如,对于矩形法,需要设置小区间的数量n;对于梯形法,需要设置小区间的数量n;对于辛普森法,需要设置小区间的数量n。
3. 计算每个小区间的宽度,例如,对于区间[0,1],小区间的宽度为h = (1-0)/n。
4. 根据所选的积分方法,计算积分的近似值。
5. 比较不同积分方法的近似值,分析误差来源。
四、实验结果与分析以函数f(x) = x^2在区间[0,1]上的积分为例,进行数值积分实验。
1. 矩形法:取n=4,计算得到积分的近似值为0.5625。
2. 梯形法:取n=4,计算得到积分的近似值为0.6667。
3. 辛普森法:取n=4,计算得到积分的近似值为0.6667。
通过比较不同积分方法的近似值,可以发现辛普森法的误差较小,且随着n的增大,误差逐渐减小。
这表明辛普森法在数值积分中具有较高的精度。
五、实验总结1. 本实验通过数值积分方法,计算了函数f(x) = x^2在区间[0,1]上的积分,加深了对积分概念的理解。
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提供了丰富的数值计算函数和工具,能够方便地进行数值分析的计算和求解。
数值微分的计算结果与解析解相比较,可以发现数值微分的误差随着步长的减小而减小,但是当步长过小时,数值微分的误差会受到舍入误差的影响。
数值计算方法实验报告一、实验目的本实验旨在通过数值计算方法的实验操作,深入理解数值计算方法的原理与应用,掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
二、实验内容1.数值微积分2.数值代数3.数值微分方程4.数值线性代数5.数值优化6.数值统计分析7.数值随机模拟8.数值傅立叶分析9.数值偏微分方程三、实验步骤1.数值微积分:通过不同的数值积分方法,计算给定函数的定积分值,并对不同数值积分方法的误差进行分析。
2.数值代数:通过使用线性代数方法,求解给定的线性方程组,并分析不同线性方程组求解方法的优劣。
3.数值微分方程:通过使用常微分方程数值解法,求解给定的微分方程,并比较不同求解方法的精度和稳定性。
4.数值线性代数:通过使用特征值分解方法,对给定的矩阵进行特征值分解,并分析不同特征值分解方法的优缺点。
5.数值优化:通过使用不同的优化方法,求解给定的优化问题,并比较不同的优化方法的效率和精度。
6.数值统计分析:通过使用不同的统计分析方法,对给定的数据进行统计分析,并分析不同的统计方法的优缺点。
7.数值随机模拟:通过使用随机模拟方法,模拟给定的概率分布,并分析不同随机模拟方法的效率和精度。
8.数值傅立叶分析:通过使用傅立叶分析方法,对给定的信号进行频谱分析,并分析不同的傅立叶分析方法的优缺点。
9.数值偏微分方程:通过使用偏微分方程数值解法,求解给定的偏微分方程,并比较不同求解方法的精度和稳定性。
四、实验结果与分析本实验中,通过对不同的数值计算方法的实验操作,我们可以更深入地理解数值计算方法的原理与应用,并掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
同时,通过实验结果的分析,我们可以更好地比较不同数值计算方法的优缺点,为实际应用提供参考依据。
五、实验总结本实验旨在通过数值计算方法的实验操作,深入理解数值计算方法的原理与应用,掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
MATLAB 程序设计实验7数值微分和数值积分姓名:班级:电信1105学号:********2014.6.13一、实验目的1.掌握微分的数值计算方法。
2.掌握积分的数值计算方法。
二、实验内容1、求定积分。
a)20sin xI dx x=⎰b) ()()12201160.30.010.90.04I dx x x ⎡⎤=--⎢⎥-+-+⎢⎥⎣⎦⎰ 解:代码及结果如下:function yp=test(x) yp=sin(x)./x;>> [I,err]=quadgk(@test,0,2) I = 1.6054err = 8.0491e-17function yp=test(x)yp=((1./((x-0.3).^2+0.01)-1./((x-0.9).^2+0.04))-6);>> [S,n]=quadl(@test,0,1,10^-10,0) S = 11.7006 n = 7682、求二重定积分。
A)()()112200exp I x y dxdy =-+⎰⎰B)()0cos I x y dxdy ππ=+⎰⎰解:代码及结果如下:>> fx=inline('exp(-(x.^2+y.^2))','x','y'); >> dblquad(fx,0,1,0,1,10^-10) ans = 0.5577>> fx=inline('abs(cos(x+y))','x','y'); >> dblquad(fx,0,pi,0,pi,10^-10) ans = 6.28323、分别用矩形、梯形公式计算表1中数据给出的定积分,()1.50.3I f x dx =⎰。
解:代码及结果如下: >> x=0.3:0.2:1.5;>> y=[0.3895 0.6598 0.9147 1.1611 1.3971 1.6212 1.8325]; >> trapz(x,y) ans = 1.3730设x 由[]π2:0区间内均匀分布的10个点组成,求向量x sin 的1~3阶差分。
实验报告实验课程名称计算物理实验项目名称数值积分和数值微分在物理中的应用年级 2009级专业物理学学生姓名学号理学院实验时间:2012 年 6 月 4 日学生所在学院理学院专业:物理学班级:物理091),Z ϕ+∇E=-V 就可以求电场了x=0即只研究0320223/242()IdI r r R IR z μπμ-⨯+萨伐尔定律dB=对于载流圆环,其轴线上的磁感强度由于具有对称性若其轴线取为Z 轴,则磁感应强度的方向垂直圆形线圈平面沿B=而空间其他位置磁感应强度助计算机求数值解便可以直观的将磁场的空间分布表示出来dI 0044x y z z y x z y x z x x y ijkdx dy dzr r r I dB r I dB μπμπ⨯⨯==r=展开计算有:dI r=(r dy-r dz)i+(r dz-r dx)j+(r dx-r dy)k 这样r dy-r dz r dz-r dx r dx-r%画电势分布contour(X(:,:,1),Y(:,:,1),v,[6,8,10,12,14,16,18,20,22,24,26,28,30,32],'g') hold onsx=0.2;sy=[-3.2:0.4:3.2];%计算电场线起点[Sx,Sy]=meshgrid(sx,sy);%利用对称性画电场线streamline(X(:,:,1),Y(:,:,1),Ex,Ey,Sx,Sy);hold onstreamline(-X(:,:,1),Y(:,:,1),-Ex,Ey,-Sx,Sy);xlabel('x');ylabel('y');title('带电细棒的电势及电场分布')(2)clear alllam=1e-9;%带电环的电荷线密度ep0=8.85*1e-12;%真空中的电容器c0=lam/(4*pi*ep0);%归并常数R=1.2;%带电环的半径y=-6:0.11:6;z=-6:0.11:6;phi=0:pi/20:2*pi;[Y,Z,PHI]=meshgrid(y,z,phi);r=sqrt((R*cos(PHI)).^2+(Y-R*sin(PHI)).^2+Z.^2);载流圆环的磁场clear allI0=1e2;%截流圆环中的电流mu0=4*pi*1e-7;%真空中的磁导率c0=I0*mu0/(4*pi);%归并常数R=1.5;y=-2:0.04:2;z=-2:0.04:2;phi=0:pi/40:2*pi;[Y,Z,PHI]=meshgrid(y,z,phi);r=sqrt((R*cos(PHI)).^2+(Y-R*sin(PHI)).^2+Z.^2); r3=r.^3;dBy=c0*R*Z.*sin(PHI)./r3;%求磁场的y,z分量dBz=c0*R*(R-Y.*sin(PHI))./r3;By=pi/20*trapz(dBy,3);Bz=pi/20*trapz(dBz,3);B=sqrt(By.^2+Bz.^2);figureaxis([-2,2,-2,2]);line(R,0,'marker','.','markersize',30,'color','r')line(-R,0,'marker','.','markersize',30,'color','r') hold onsz=0.1;sy=[0.11:0.13:1.28];[Sy,Sz]=meshgrid(sy,sz);streamline(Y(:,:,1),Z(:,:,1),By,Bz,Sy,Sz);%利用对称性画磁场线streamline(-Y(:,:,1),Z(:,:,1),-By,Bz,-Sy,Sz);streamline(-Y(:,:,1),-Z(:,:,1),-By,-Bz,-Sy,-Sz);streamline(Y(:,:,1),-Z(:,:,1),By,-Bz,Sy,-Sz);title('载流圆环磁场分布图')xlabel('y')ylabel('z')figuresubplot(2,2,1)mesh(Y(:,:,1),Z(:,:,1),By);title('磁场y分量')xlabel('y')ylabel('z')subplot(2,2,2)mesh(Y(:,:,1),Z(:,:,1),Bz);title('磁场z分量')xlabel('y')ylabel('z')subplot(2,2,3)mesh(Y(:,:,1),Z(:,:,1),B);title('载流圆环磁场大小分布图')xlabel('y')ylabel('z')zlabel('B')。
实验三 数值积分与数值微分
【实验内容】
选用复合梯形公式,复合Simpson 公式,Romberg 算法高斯算法计算
(1) )5343916.1(sin 44102≈-=⎰
I dx x I (2) )9460831.0,1)0((sin 10≈==⎰I f dx x
x I (3) dx x e I x
⎰+=1024 ;(4) dx x
x I ⎰++=1021)1ln( 【实验前的预备知识】
1、 深刻认识数值积分法的意义;
2、 明确数值积分精度与步长的关系;
3、 根据定积分的计算方法,可以考虑二重积分的计算问题。
4、 比较各种积分方法复杂度及收敛速度。
【实验方法或步骤】
1、 编制数值积分算法的程序;
2、 分别用两种算法计算同一个积分,并比较其结果;
3、 分别取不同步长n a b h /)(-=,试比较计算结果(如20,10=n 等);
4、 给定精度要求ε,试用变步长算法,确定最佳步长。
程序:
复合梯形公式求函数f 在区间【a ,b 】上的定积分代码
function [I,step]=CombineTraprl(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
end
n=1;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1)); end
end
I=I2;step=n;
用该方法计算)5343916.1(sin 44
102≈-=⎰I dx x I 的程序为
[q,s]=CombineTraprl('sqrt(4-(sinx)^2)',0,0.25,1.5343916)
得结果为q =0.4986 s =3即结果为0.4986积分区间为3个
辛普森公式求函数f 在区间【a ,b 】上的定积分代码
function [I,step]=IntSimpson(f,a,b,type,eps)
%type 分别为1,2,3时分别为辛普森公式,3/8公式,复合辛普森
if(type==3&&nargin==4)
eps=1.0e-4;
end
I=0;
switch type
case 1,
I=((b-a)/6)*(subs(sym(f),findsym(sym(f)),a)+...
4*subs(sym(f),findsym(sym(f)),(a+b)/2)+...
subs(sym(f),findsym(sym(f)),b));
step=1;
case 2,
I=((b-a)/8)*(subs(sym(f),findsym(sym(f)),a)+...
3*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+...
3*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+subs(sym(f),findsym(sym(f)),b)); step=1;
case 3,
n=2;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+...
4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+...
subs(sym(f),findsym(sym(f)),x1));
end
end
I=I2;
step=n;
end 用该方法计算)5343916.1(sin 44
102≈-=⎰I dx x I 的程序为
[q,s]=IntSimpson('sqrt(4-(sinx)^2)',0,0.25,1)
得结果为q =0.4987 s =1即结果为0.4987 积分区间为一个。