数值微分计算方法实验
- 格式:pdf
- 大小:260.00 KB
- 文档页数:12
实验报告
一、实验目的
解初值问题各种方法比较。
二、实验题目
给定初值问题
⎪⎩⎪⎨⎧=≤<+=,
0)1(,21y x xe x y dx dy x , 其精确解为)(e e x y x -=,按
(1)改进欧拉法,步长01.0,1.0==h h ;
(2)四阶标准龙格-库塔法,步长1.0=h ;
求在节点)10,...,2,1(1.01=+=k k x k 处的数值解及其误差,比较各个方法的优缺点。
三、实验原理
改进欧拉法程序,四阶标准龙格-库塔法程序。
四、实验内容及结果
五、实验结果分析
实验2中改进欧拉法和四阶标准龙格-库塔法的比较:
结果的第一个ans是x的值与对应的y的值,第二个ans是精确解x的对应值y,第三个ans 是与精确值的误差百分数。
通过误差百分数的比较,可以明显的发现改进欧拉法比四阶标准龙格-库塔法更精确。
数值计算方法实验报告一、实验介绍本次实验是关于数值计算方法的实验,旨在通过计算机模拟的方法,实现对于数值计算方法的掌握。
本次实验主要涉及到的内容包括数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等。
二、实验内容1. 数值微积分数值微积分是通过计算机模拟的方法,实现对于微积分中的积分运算的近似求解。
本次实验中,我们将会使用梯形公式和辛普森公式对于一定区间上的函数进行积分求解,并比较不同公式的计算误差。
2. 线性方程组的求解线性方程组求解是数值计算领域中的重要内容。
本次实验中,我们将会使用高斯消元法、LU分解法等方法对于给定的线性方程组进行求解,并通过比较不同方法的计算效率和精度,进一步了解不同方法的优缺点。
3. 插值与拟合插值与拟合是数值计算中的另一个重要内容。
本次实验中,我们将会使用拉格朗日插值法和牛顿插值法对于给定的数据进行插值求解,并使用最小二乘法对于给定的函数进行拟合求解。
4. 常微分方程的数值解常微分方程的数值解是数值计算中的难点之一。
本次实验中,我们将会使用欧拉法和龙格-库塔法等方法对于给定的常微分方程进行数值解的求解,并比较不同方法的计算精度和效率。
三、实验结果通过本次实验,我们进一步加深了对于数值计算方法的理解和掌握。
在数值微积分方面,我们发现梯形公式和辛普森公式都能够有效地求解积分,但是辛普森公式的计算精度更高。
在线性方程组求解方面,我们发现LU分解法相对于高斯消元法具有更高的计算效率和更好的数值精度。
在插值与拟合方面,我们发现拉格朗日插值法和牛顿插值法都能够有效地进行插值求解,而最小二乘法则可以更好地进行函数拟合求解。
在常微分方程的数值解方面,我们发现欧拉法和龙格-库塔法都能够有效地进行数值解的求解,但是龙格-库塔法的数值精度更高。
四、实验总结本次实验通过对于数值计算方法的模拟实现,进一步加深了我们对于数值计算方法的理解和掌握。
在实验过程中,我们了解了数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等多个方面的内容,在实践中进一步明确了不同方法的特点和优缺点,并可以通过比较不同方法的计算效率和数值精度来选择合适的数值计算方法。
数学与计算科学学院实验报告实验项目名称欧拉法解常微分方程所属课程名称数值计算实验类型验证型实验日期2012-6- 4班级隧道1002班学号201008020233姓名李彬彬成绩一、实验概述:【实验目的】 通过运用相关的数值计算软件,解决最基本的常微分方程的数值计算,并且能够熟练的运用这种方法。
【实验原理】 欧拉法1.对常微分方程初始问题(9.2))((9.1)),(00⎪⎩⎪⎨⎧==y x y y x f dxdy用数值方法求解时,我们总是认为(9.1)、(9.2)的解存在且唯一。
欧拉法是解初值问题的最简单的数值方法。
从(9.2)式由于y (x 0) = y 0已给定,因而可以算出),()('000y x f x y =设x 1 = h 充分小,则近似地有:),()(')()(00001y x f x y hx y x y =≈-(9.3)记 ,n ,,i x y y i i 10 )(== 从而我们可以取),(0001y x hf y y ==作为y (x 1)的近似值。
利用y 1及f (x 1, y 1)又可以算出y (x 2)的近似值:),(1112y x hf y y +=一般地,在任意点x n +1 = (n + 1)h 处y (x )的近似值由下式给出),(1n n n n y x hf y y +=+(9.4)这就是欧拉法的计算公式,h 称为步长。
不难看出,近似解的误差首先是由差商近似代替微商(见(9.3))引起的,这种近似代替所产生的误差称为截断误差。
还有一种误差称为舍入误差,这种误差是由于利用(9.4)进行计算时数值舍入引起的。
【实验环境】Windows XP 环境下运行 NumericalAnalyse 软件二、实验内容:【实验方案】在区间[0,1]上以h=0.1为步长,分别用欧拉法与预估-校正法求初值问题y’=y-2x/y且 y|x=0 =1的数值解。
将上述方程输入到软件NumericalAnalyse中步骤如图选择常微分方程的数值解法。
数值分析第四章外推法计算数值微分MATLAB计算实验报告数值分析MATLAB计算实验报告姓名班级学号⼀、实验名称⽤MATLAB编程实现数值微分的外推法计算。
⼆、实验⽬的1.掌握数值微分和定义和外推法的计算过程;2.了解数值微分外推法的计算⽅法并且编写出与其算法对应的MATLAB程序代码;3.体会利⽤MATLAB软件进⾏数值计算。
三、实验内容⽤外推法计算f(x)=x2e?x在x=0.5的导数。
四、算法描述1.命名函数。
2.如果输⼊未知数少于四个,默认精度10^-33.描述T表矩阵坐标4.依次赋值计算 T表第⼀列5.根据数值微分计算公式求出T表矩阵的值6.若达到精度则运算结束,若未达到循环计算7.输出T表,得出的值就是导数值五、实验结果六、实验结果分析此实验通过MATLAB实现外推法数值微分计算,得到相应的数据,⽅便对数据进⾏分析。
从结果可以看出,当步长h=0.025时⽤中点微分公式只有3位有效数字,外推⼀次达到5位有效数字,外推两次达到9位有效数字。
七、附录(程序)function g=waituifa(fname,x,h,e)if nargin<4,e=1e-3;end;i=1;j=1;G(1,1)=(feval(fname,x+h)-feval(fname,x-h))/(2*h);G(i+1,1)=(feval(fname,x+h/2)-feval(fname,x-h/2))/h;G(i+1,j+1)=(4^j*G(i+1,j)-G(i,j))/(4^j-1);while abs(G(i+1,i+1)-G(i+1,i))>ei=i+1;G(i+1,1)=(feval(fname,x+h/2^i)-feval(fname,x-h/2^i))/(2*h/2^i); for j=1:iG(i+1,j+1)=((4^j)*G(i+1,j)-G(i,j))/(4^j-1);endendGg=G(i+1,i+1);。
微分方程数值解法实验报告2篇微分方程数值解法实验报告(一)在实际科学与工程问题中,我们经常会遇到微分方程的求解。
然而,许多微分方程往往没有解析解,这就需要我们利用数值方法来获得近似解。
本篇实验报告将介绍两种常见的微分方程数值解法:欧拉方法和改进的欧拉方法。
一、欧拉方法欧拉方法是最简单的微分方程数值解法之一。
其基本原理为离散化微分方程,将微分方程中的导数用差商代替。
设要求解的微分方程为dy/dx = f(x, y),步长为h,则可用以下公式进行递推计算:y_{n+1} = y_n +hf(x_n, y_n)二、算法实现为了对欧拉方法进行数值实验,我们以一阶线性常微分方程为例:dy/dx = x - y, y(0) = 1步骤如下:(1)选择合适的步长h和求解区间[a, b],这里我们取h=0.1,[a, b] = [0, 1];(2)初始化y_0 = 1;(3)利用欧拉方法递推计算y_{n+1} = y_n + 0.1(x_n - y_n);(4)重复步骤(3),直到x_n = 1。
三、实验结果与讨论我们通过上述步骤得到了在[0, 1]上的近似解y(x)。
下图展示了欧拉方法求解的结果。
从图中可以看出,欧拉方法得到的近似解与精确解有一定的偏差。
这是因为欧拉方法只是通过递推计算得到的近似解,并没有考虑到更高阶的误差。
所以在需要高精度解时,欧拉方法并不理想。
四、改进的欧拉方法针对欧拉方法的不足,我们可以考虑使用改进的欧拉方法(也称为改进的欧拉-柯西方法)。
它是通过利用前后两个步长欧拉方法得到的结果作为差商的中间项,从而提高了求解精度。
一阶线性常微分方程的改进欧拉方法可以表示为:y_{n+1} = y_n + h(f(x_n, y_n) + f(x_{n+1}, y_n + hf(x_n,y_n)))/2五、算法实现与结果展示将改进的欧拉方法应用于前述的一阶线性常微分方程,我们同样选择h=0.1,[a, b] = [0, 1]。
微分方程数值解实验报告实验目的:掌握微分方程数值解的基本方法,能够利用计算机编程求解微分方程。
实验原理:微分方程是自然科学与工程技术中常见的数学模型,它描述了变量之间的关系及其随时间、空间的变化规律。
解微分方程是研究和应用微分方程的基础,但有很多微分方程无法找到解析解,只能通过数值方法进行求解。
本实验采用欧拉方法和改进的欧拉方法求解微分方程的初值问题:$$\begin{cases}\frac{dy}{dt}=f(t,y)\\y(t_0)=y_0\end{cases}$$其中,$f(t,y)$是给定的函数,$y(t_0)=y_0$是已知的初值条件。
欧拉方法是最基本的数值解法,其步骤如下:1.给定$t_0$和$y_0$2.计算$t_{i+1}=t_i+h$,其中$h$是步长3. 计算$y_{i+1}=y_i+hf(t_i,y_i)$4.重复步骤2、3直到达到终止条件改进的欧拉方法是对欧拉方法进行改进,通过利用函数$y(t)$在$t+\frac{1}{2}h$处的斜率来更准确地估计$y_{i+1}$,其步骤如下:1.给定$t_0$和$y_0$2.计算$t_{i+1}=t_i+h$,其中$h$是步长3. 计算$y_*=y_i+\frac{1}{2}hf(t_i,y_i)$4. 计算$y_{i+1}=y_i+hf(t_i+\frac{1}{2}h,y_*)$5.重复步骤2、3、4直到达到终止条件实验步骤:1.编写程序实现欧拉方法和改进的欧拉方法2.给定微分方程和初值条件3.设置步长和终止条件4.利用欧拉方法和改进的欧拉方法求解微分方程5.比较不同步长下的数值解与解析解的误差6.绘制误差-步长曲线,分析数值解的精度和收敛性实验结果:以一阶常微分方程$y'=3ty+t$为例,给定初值$y(0)=1$,取步长$h=0.1$进行数值求解。
利用欧拉方法求解微分方程得到的数值解如下:\begin{array}{cccc}t & y_{\text{exact}} & y_{\text{Euler}} & \text{误差} \\ \hline0.0&1.000&1.000&0.000\\0.1&1.035&1.030&0.005\\0.2&1.104&1.108&0.004\\0.3&1.212&1.217&0.005\\0.4&1.360&1.364&0.004\\0.5&1.554&1.559&0.005\\0.6&1.805&1.810&0.005\\0.7&2.131&2.136&0.005\\0.8&2.554&2.560&0.006\\0.9&3.102&3.107&0.006\\1.0&3.807&3.812&0.005\\\end{array}利用改进的欧拉方法求解微分方程得到的数值解如下:\begin{array}{cccc}t & y_{\text{exact}} & y_{\text{Improved Euler}} & \text{误差} \\\hline0.0&1.000&1.000&0.000\\0.1&1.035&1.035&0.000\\0.2&1.104&1.103&0.001\\0.3&1.212&1.211&0.001\\0.4&1.360&1.358&0.002\\0.5&1.554&1.552&0.002\\0.6&1.805&1.802&0.003\\0.7&2.131&2.126&0.005\\0.8&2.554&2.545&0.009\\0.9&3.102&3.086&0.015\\1.0&3.807&3.774&0.032\\\end{array}误差-步长曲线如下:实验结论:通过对比欧拉方法和改进的欧拉方法的数值解与解析解的误差,可以发现改进的欧拉方法具有更高的精度和收敛性。
实验09 数值微积分与方程数值求解(第6章 MATLAB 数值计算)一、实验目的二、实验内容1. 求函数在指定点的数值导数232()123,1,2,3026x x x f x x xx x==2. 用数值方法求定积分(1) 210I π=⎰的近似值。
程序及运行结果:《数学软件》课内实验王平(2) 2221I dx x π=+⎰程序及运行结果:3. 分别用3种不同的数值方法解线性方程组6525494133422139211x y z u x y z u x y z u x y u +-+=-⎧⎪-+-=⎪⎨++-=⎪⎪-+=⎩ 程序及运行结果:4. 求非齐次线性方程组的通解1234123412342736352249472x x x x x x x x x x x x +++=⎧⎪+++=⎨⎪+++=⎩5. 求代数方程的数值解(1) 3x +sin x -e x =0在x 0=1.5附近的根。
程序及运行结果(提示:要用教材中的函数程序line_solution ):(2) 在给定的初值x 0=1,y 0=1,z 0=1下,求方程组的数值解。
23sin ln 70321050y x y z x z x y z ⎧++-=⎪+-+=⎨⎪++-=⎩6. 求函数在指定区间的极值(1) 3cos log ()xx x x xf x e ++=在(0,1)内的最小值。
(2) 33212112122(,)2410f x x x x x x x x =+-+在[0,0]附近的最小值点和最小值。
7. 求微分方程的数值解,并绘制解的曲线2250(0)0'(0)0xd y dyy dx dx y y ⎧-+=⎪⎪⎪=⎨⎪=⎪⎪⎩程序及运行结果(注意:参数中不能取0,用足够小的正数代替):令y 2=y,y 1=y ',将二阶方程转化为一阶方程组:'112'211251(0)0,(0)0y y y x x y y y y ⎧=-⎪⎪=⎨⎪==⎪⎩8. 求微分方程组的数值解,并绘制解的曲线123213312123'''0.51(0)0,(0)1,(0)1y y y y y y y y y y y y =⎧⎪=-⎪⎨=-⎪⎪===⎩程序及运行结果:三、实验提示四、教程:第6章 MATLAB 数值计算(2/2)6.2 数值微积分 p155 6.2.1 数值微分1. 数值差分与差商对任意函数f(x),假设h>0。
数值微分的计算方法内容摘要 求解数值微分问题,就是通过测量函数在一些离散点上的值,求得函数的近似导数。
本文就所学知识,归纳性地介绍了几种常用的数值微分计算方法。
并举例说明计算,实验结果表明了方法的有效性。
关键词 数值微分 Taylor 展开式 Lagrange 插值 三对角矩阵引言:数值微分即根据函数在一些离散点的函数值,推算它在某点的导数或高阶导数的近似值的方法。
常见的可以用一个能够近似代替该函数的较简单的可微函数(如多项式或样条函数等)的相应导数作为能求导数的近似值,由此也可导出多点数值微分计算公式。
当函数可微性不太好时,利用样条插值进行数值微分要比多项式插值更适宜。
1.Taylor 展开式方法理论基础:Taylor 展开式()()()()()()()()()000000022!!nnx x x x f x f x x x f x f x f x n --'''=+-++++我们借助Taylor 展开式,可以构造函数f x 在点0x x 的一阶导数和二阶导数的数值微分公式。
取步长0h则),()(2)()()(0011''20'00h x x f h x hf x f h x f +∈++=+ξξ (1)所以),()(2)()()(0011''000'h x x f h h x f h x f x f +∈--+=ξξ (2)同理),()(2)()()(0022''20'00x h x f h x hf x f h x f -∈+-=-ξξ (3) ),()(2)()()(0022''000'x h x f h h h x f x f x f -∈+--=ξξ (4)式(2)和式(4)是计算'0f x 的数值微分公式,其截断误差为O h ,为提高精度,将Taylor 展开式多写几项),()(24)(6)(2)()()(0011)4(40'''30''20'00h x x f h x f h x f h x hf x f h x f +∈++++=+ξξ ),()(24)(6)(2)()()(0022)4(40'''30''20'00x h x f h x f h x f h x hf x f h x f -∈+-+-=-ξξ两式相减得)()(62)()()(40'''2000'h O x f h h h x f h x f x f +---+= (5)上式为计算)(0'x f 的微分公式,其截断误差为O(h 2),比式(2)和(4)精度高。