微分方程实验报告(迎风-格式)信息科学

合集下载

常微分方程 课程实习报告

常微分方程  课程实习报告

福建农林大学计算机与信息学院(数学类课程)课程实习报告课程名称:常微分方程课程实习实习题目:常微分方程数值求解问题的实习姓名:上官火玉系:信息与计算科学专业:信息与计算科学年级:2008学号:081152048指导教师:陈永雪职称:讲师2010 年12 月 1 日福建农林大学计算机与信息学院数学类课程实习报告结果评定目录1. 实习的目的和任务 (1)2. 实习要求 (1)3. 实习地点 (1)4. 主要仪器设备 (1)5. 实习内容 (1)5.1 用不同格式对同一个初值问题的数值求解及其分析 (1)5.1.1求精确解 (1)5.1.2用欧拉法求解 (3)5.1.3用改进欧拉法求解 (5)5.1.4用4级4阶龙格—库塔法求解 (7)5.1.5 问题讨论与分析 (10)5.2 一个算法不同不长求解同一个初值问题及其分析 (12)6. 结束语 (13)参考文献 (13)常微分方程课程实习1.实习的目的和任务目的:通过课程实习能够应用MATLAB软来计算微分方程(组)的数值解;了解常微分方程数值解。

任务:通过具体的问题,利用MATLAB软件来计算问题的结果,分析问题的结论。

2.实习要求能够从案例的自然语言描述中,抽象出其中的数学模型;能够熟练应用所学的数值解计算方法;能够熟练使用MATLAB软件;对常微分方程数值解有所认识,包括对不同算法有所认识和对步长有所认识。

3.实习地点数学实验室4.主要仪器设备计算机、Microsoft Windows XPMatlab 6.55.实习内容5.1 用欧拉方法,改进欧拉方法,4阶龙格—库塔方法分别求下面微分方程的初值dy/dx=y+x+1 y(0)=1 x∈[0,2]5.1.1求精确解首先可以求得其精确解为:y=3*exp(x)-x-25.1.1 程序代码:>> x=0:0.1:2;>> y=3*exp(x)-x-2>> plot(x,y,'b*-');>> Data=[x',y']y =Columns 1 through 91.0000 1.2155 1.4642 1.74962.0755 2.44622.86643.3413 3.8766Columns 10 through 184.47885.1548 5.91256.76047.70798.76569.9451 11.2591 12.7218Columns 19 through 2114.3489 16.1577 18.1672Data =0 1.00000.1000 1.21550.2000 1.46420.3000 1.74960.4000 2.07550.5000 2.44620.6000 2.86640.7000 3.34130.8000 3.87660.9000 4.47881.0000 5.15481.1000 5.91251.2000 6.76041.3000 7.70791.4000 8.76561.5000 9.94511.6000 11.25911.7000 12.72181.8000 14.34891.9000 16.15772.0000 18.1672>>00.20.40.60.81 1.2 1.4 1.6 1.825.1.2 用欧拉法求解程序如下:建立函数文件cwfa1.mfunction [x,y]=cwfa1(fun,x_span,y0,h)x=x_span(1):h:x_span(2);y(1)=y0;for n=1:length(x)-1y(n+1)=y(n)+h*feval(fun,x(n),y(n)); endx=x';y=y';在MATLAB输入以下程序:>> clear all>> fun=inline(' y+x+1');>> [x,y]=cwfa1(fun,[0,2],1,0.1);>> [x,y]>> plot(x,y,'r*-')结果及其图象:ans =0 1.00000.1000 1.20000.2000 1.43000.3000 1.69300.4000 1.99230.5000 2.33150.6000 2.71470.7000 3.14620.8000 3.63080.9000 4.17381.0000 4.78121.1000 5.45941.2000 6.21531.3000 7.05681.4000 7.99251.5000 9.03171.6000 10.18491.7000 11.46341.8000 12.87981.9000 14.44772.0000 16.182500.20.40.60.81 1.2 1.4 1.6 1.825.1.3用改进欧拉法求解:程序如下:建立函数文件cwfa2.mfunction [x,y]=cwfa2(fun,x_span,y0,h)x=x_span(1):h:x_span(2);y(1)=y0;for n=1:length(x)-1k1=feval(fun,x(n),y(n));y(n+1)=y(n)+h*k1;k2=feval(fun,x(n+1),y(n+1));y(n+1)=y(n)+h*(k1+k2)/2;endx=x';y=y';在MATLAB输入以下程序:>> clear all>> fun=inline(' y+x+1');>> [x,y]=cwfa2(fun,[0,2],1,0.1); >> [x,y]>> plot(x,y,'r+-')结果及其图象:ans =0 1.00000.1000 1.21500.2000 1.46310.3000 1.74770.4000 2.07270.5000 2.44230.6000 2.86130.7000 3.33470.8000 3.86840.9000 4.46851.0000 5.14221.1000 5.89721.2000 6.74191.3000 7.68581.4000 8.73931.5000 9.91391.6000 11.22241.7000 12.67871.8000 14.29851.9000 16.09882.0000 18.0987>>00.20.40.60.81 1.2 1.4 1.6 1.825.1.4 用4阶龙格—库塔求解程序如下:建立函数文件cwfa3.mfunction [x,y]=cwfa3(fun,x_span,y0,h)x=x_span(1):h:x_span(2);y(1)=y0;for n=1:length(x)-1k1=feval(fun,x(n),y(n));k2=feval(fun,x(n)+h/2,y(n)+h/2*k1);k3=feval(fun,x(n)+h/2,y(n)+h/2*k2);k4=feval(fun,x(n+1),y(n)+h*k3);y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6;endx=x';y=y';在MATLAB输入以下程序:>> clear all;>> fun=inline(' y+x+1');>> [x,y]=cwfa3(fun,[0,2],1,0.1); >> [x,y]>> plot(x,y, 'b+-')结果及其图象:ans =0 1.00000.1000 1.21550.2000 1.46420.3000 1.74960.4000 2.07550.5000 2.44620.6000 2.86640.7000 3.34130.8000 3.87660.9000 4.47881.0000 5.15481.1000 5.91251.2000 6.76031.3000 7.70791.4000 8.76561.5000 9.94511.6000 11.25911.7000 12.72181.8000 14.34891.9000 16.15772.0000 18.1671>>00.20.40.60.81 1.2 1.4 1.6 1.825.1.5 问题讨论与分析由以上数值分析结果绘制表格:x=0:0.1:2;y1 = [1.0000 1.2155 1.4642 1.7496 2.0755 2.4462 2.8664 3.3413 3.8766 4.4788 5.1548 5.9125 6.7604 7.7079 8.7656 9.9451 11.2591 12.7218 14.3489 16.1577 18.1672];>> y1=[1.0000 1.2155 1.4642 1.7496 2.0755 2.4462 2.8664 3.3413 3.8766 4.4788 5.1548 5.9125 6.7604 7.7079 8.7656 9.9451 11.2591 12.7218 14.3489 16.1577 18.1672];>> y2=[1.0000 1.2000 1.4300 1.6930 1.9923 2.3315 2.7147 3.1462 3.6308 4.1738 4.7812 5.4594 6.2153 7.0568 7.9925 9.0317 10.1849 11.4634 12.8798 14.4477 16.1825];>> y3=[1.0000 1.2150 1.2192 1.4631 1.7477 2.0727 2.4423 2.8613 3.8684 4.4685 5.1422 5.8972 6.7419 7.6858 8.7393 9.9139 11.2224 12.6787 14.2985 16.0988 18.0987];>> y4=[1.0000 1.2155 1.4642 1.7496 2.0755 2.4462 2.8664 3.3413 3.8766 4.4788 5.1548 5.9125 6.7603 7.7079 8.7656 9.9451 11.2591 12.7218 14.3489 16.1577 18.1671 ];>> plot(x,y1,'r+-')>> hold on,plot(x,y2,'b-')>> plot(x,y1,'r+-')>> hold on,plot(x,y3,'b-')>> plot(x,y1,'r+-')>> hold on,plot(x,y4,'b-')00.20.40.60.81 1.2 1.4 1.6 1.8200.20.40.60.81 1.2 1.4 1.6 1.8200.20.40.60.81 1.2 1.4 1.6 1.82由上表和图可以看出欧拉法误差最大,而改进欧拉和龙格—库塔方法误差相对较小,并且龙格—库塔方法误差最小且大部分值都跟精确值相同。

常微分方程数值解实验报告

常微分方程数值解实验报告

常微分方程数值解实验报告学院:数学与信息科学专业:信息与计算科学姓名:郑思义学号:201216524课程:常微分方程数值解实验一:常微分方程的数值解法1、分别用Euler 法、改进的Euler 法(预报校正格式)和S —K 法求解初值问题。

(h=0.1)并与真解作比较。

⎩⎨⎧=++-=10(1y')y x y 1.1实验代码:%欧拉法function [x,y]=naeuler(dyfun,xspan,y0,h)%dyfun 是常微分方程,xspan 是x 的取值范围,y0是初值,h 是步长 x=xspan(1):h:xspan(2); y(1)=y0;for n=1:length(x)-1y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end%改进的欧拉法function [x,m,y]=naeuler2(dyfun,xspan,y0,h)%dyfun 是常微分方程,xspan 是x 的取值范围,y0是初值,h 是步长。

%返回值x 为x 取值,m 为预报解,y 为校正解 x=xspan(1):h:xspan(2); y(1)=y0;m=zeros(length(x)-1,1); for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); y(n+1)=y(n)+h*k1; m(n)=y(n+1);k2=feval(dyfun,x(n+1),y(n+1)); y(n+1)=y(n)+h*(k1+k2)/2; end%四阶S —K 法function [x,y]=rk(dyfun,xspan,y0,h)%dyfun 是常微分方程,xspan 是x 的取值范围,y0是初值,h 是步长。

x=xspan(1):h:xspan(2); y(1)=y0;for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n));k2=feval(dyfun,x(n)+h/2,y(n)+(h*k1)/2); k3=feval(dyfun,x(n)+h/2,y(n)+(h*k2)/2); k4=feval(dyfun,x(n)+h,y(n)+h*k3);y(n+1)=y(n)+(h/6)*(k1+2*k2+2*k3+k4);end%主程序x=[0:0.1:1];y=exp(-x)+x;dyfun=inline('-y+x+1');[x1,y1]=naeuler(dyfun,[0,1],1,0.1);[x2,m,y2]=naeuler2(dyfun,[0,1],1,0.1);[x3,y3]=rk(dyfun,[0,1],1,0.1);plot(x,y,'r',x1,y1,'+',x2,y2,'*',x3,y3,'o');xlabel('x');ylabel('y');legend('y为真解','y1为欧拉解','y2为改进欧拉解','y3为S—K解','Location','NorthWest');1.2实验结果:x 真解y 欧拉解y1 预报值m 校正值y2 S—K解y30.0 1.0000 1.0000 1.0000 1.00000.1 1.0048 1.0000 1.0000 1.0050 1.00480.2 1.0187 1.0100 1.0145 1.0190 1.01870.3 1.0408 1.0290 1.0371 1.0412 1.04080.4 1.0703 1.0561 1.0671 1.0708 1.07030.5 1.1065 1.0905 1.1037 1.1071 1.10650.6 1.1488 1.1314 1.1464 1.1494 1.14880.7 1.1966 1.1783 1.1945 1.1972 1.19660.8 1.2493 1.2305 1.2475 1.2500 1.24930.9 1.3066 1.2874 1.3050 1.3072 1.30661.0 1.3679 1.3487 1.3665 1.3685 1.36792、选取一种理论上收敛但是不稳定的算法对问题1进行计算,并与真解作比较。

常微分方程实验报告

常微分方程实验报告

常微分方程实验报告一、实验目的常微分方程是数学分析和实际应用中非常重要的一部分,本次实验的主要目的是通过实际操作和计算,深入理解常微分方程的概念、性质和求解方法,并能够将其应用到实际问题中,提高我们解决数学问题和实际应用问题的能力。

二、实验原理常微分方程是指含有一个自变量和一个未知函数及其导数的等式。

求解常微分方程的方法有很多,常见的有变量分离法、一阶线性方程的求解方法(如常数变易法)、恰当方程的求解方法(通过积分因子)等。

对于一阶常微分方程,形如\(y' + p(x)y = q(x)\)的方程,可以使用积分因子\(e^{\int p(x)dx}\)来求解。

对于可分离变量的方程,形如\(g(y)dy = f(x)dx\),可以通过分别积分求解。

三、实验内容(一)一阶常微分方程的求解1、求解方程\(y' + 2xy = 2x\)首先,计算积分因子\(e^{\int 2xdx} = e^{x^2}\),然后将方程两边乘以积分因子得到:\((ye^{x^2})'= 2xe^{x^2}\)两边积分可得\(ye^{x^2} = e^{x^2} + C\),解得\(y =1 + Ce^{x^2}\)2、求解方程\(xy' y = x^2\)将方程化为\(y' \frac{y}{x} = x\),这里\(p(x) =\frac{1}{x}\),积分因子为\(e^{\int \frac{1}{x}dx} =\frac{1}{x}\)。

方程两边乘以积分因子得到\((\frac{y}{x})'= 1\),积分可得\(\frac{y}{x} = x + C\),即\(y = x^2 + Cx\)(二)二阶常微分方程的求解1、求解方程\(y'' 2y' + y = 0\)特征方程为\(r^2 2r + 1 = 0\),解得\(r = 1\)(二重根),所以通解为\(y =(C_1 + C_2x)e^x\)2、求解方程\(y''+ 4y = 0\)特征方程为\(r^2 + 4 = 0\),解得\(r =\pm 2i\),所以通解为\(y = C_1\cos(2x) + C_2\sin(2x)\)(三)应用常微分方程解决实际问题1、考虑一个物体在受到与速度成正比的阻力作用下的运动,其运动方程为\(m\frac{dv}{dt} = kv\)(其中\(m\)为物体质量,\(k\)为阻力系数),求解速度\(v\)随时间\(t\)的变化。

微分方程数学实验报告

微分方程数学实验报告
a=X(i);
j=i;
elseiff(x)*f(a)>0
a=X(i);
j=i+1;
end
end
end
b=X(j);
k=k+பைடு நூலகம்;
e=b-a;
end
if(b-a)<d
w=a
else
w=(a+b)/(p-1)
end
k
运行结果:
(输入函数形式)fx=x-0.8
(输入二分法下限)a=0
(输入二分法上限)b=1
输入误差限d=0.001
d =
1.0000e-003
输入p分法的p值,p=10
p =
10
w =
0.7999
k =
4
4、实验总结
6、教师评语及评分
0.7969
x0 =
0.8047
x0 =
0.8008
x0 =
0.7988
x0 =
0.7998
(2)P分法
symsx;fun=input('(输入函数形式)fx=');
a=input('(输入二分法下限)a=');
b=input('(输入二分法上限)b=');
d=input('输入误差限d=')%二分法求根
p=input(‘输入p分法的p值,p=’)
f=inline(fun);%修改需要求解的inline函数的函数体
X=[1:p];
e=b-a;
k=0;
whilee>d
h=(b-a)/(p-1);
fori=0:p-1
X(i+1)=a+(h*i);

微分方程数值解法实验报告

微分方程数值解法实验报告

微分方程数值解法实验报告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}误差-步长曲线如下:实验结论:通过对比欧拉方法和改进的欧拉方法的数值解与解析解的误差,可以发现改进的欧拉方法具有更高的精度和收敛性。

微分方程实验报告参考模板

微分方程实验报告参考模板

理学院 信息与计算科学教研室 实验报告课程名称 数学建模 实验名称 微分方程模型 实验地点 校2机房 日期 2011.4.11【实验目的】1、学会用Matlab 求简单微分方程的解析解。

2、学会用Matlab 求微分方程的数值解。

【实验要求】1、独立完成各个实验任务;2、实验的过程保存成 .m 文件,以备检查;3、完成实验报告。

【实验内容】1、求下列方程的通解。

2、设警方对司机饮酒后驾车时血液中酒精含量的规定为不超过80%(mg/ml)。

现有一起交通事故,在事故发生3个小时后,测得司机血液中酒精含量是56%(mg/ml), 又过两个小时后,测得其酒精含量降为40%(mg/ml),试判断:事故发生时,司机是否违反了酒精含量的规定?【实验步骤】(主要包含问题分析、求解过程、实验结果、结果分析等,按课程要求完成)一、第一题1、求解过程2、实验结果⎪⎩⎪⎨⎧===++15)0(,0)0(0294'22y y y dx dy dx y d二、第二题1、问题分析设在D时刻的酒精浓度为X,设t时刻的酒精浓度为X(t),在t到&t时刻内酒精浓度为X(t+&t)-X(t)-kX(t)kt;dx/dt=-kt通解:2、求解过程3、实验结果4、结果分析x(3)=c1*e^(-3k)=56x(5)=c1*e^(-5k)=40e^(2k)=7/5 k=0.17x0*e^(-3*0.17)=56 算得x0=93.2所以酒精含量超标了【实验小结】(主要包含实验心得等)因为有了前几次上机的经验,所以这次的实验没有那么盲目。

在做第一小题时,由于老师在课件上讲解过,所以我们很顺利的就完成了。

当拿到第二小题时,有了做第一题的基础,所以有了些须思路。

但是在做题的时候还是遇到了很多的问题,也包括一些小马虎的问题,例如少编写了一个分号或是括号等;在不断的编写,调试错误的过程中,最终把这两道题做了出来。

通过这次的实验,我对Matlab软件更加熟识,并学会了用Matlab求简单微分方程的解析解以及求微分方程的数值解。

微分方程数值方法实验报告

微分方程数值方法实验报告

微分方程数值方法实验报告微分方程数值方法实验报告一、实验目的1、了解Euler法及梯形法的基本原理,能用其解决常微分方程初值问题,并把计算结果用图形表示出来。

2、理解4阶RK法基本计算步骤,能编程实现算法并解决相关常微分方程初值问题。

3、了解MATLAB主要功能和基本特征,熟悉MATLAB操作环境。

掌握MATLAB常用函数的使用以及图形处理。

二、实验题目对于初值问题u’=u,u(0)=1,在区间[0,1]上,用Euler法,梯形法及RK方法进行计算,取步长h=0.1,0.2,0.5,试比较(1)用同样步长,三种方法中哪一个精度最好;(2)对同一种方法一不同步长进行计算,哪一个结果最好。

三、实验内容1、步长为h=0.1时,用三种方法计算题目1)、MATLAB程序Euler法:>> a=0;b=1;h=0.1;N=(b-a)/h;y=zeros(N+1,1);y(1)=1;x=a:h:b;>> for i=2:N+1y(i)=y(i-1)+h*y(i-1);end求得:y = (1 1.1 1.21 1.331 1.4641 1.6105 1.7716 1.9487 2.1436 2.3579 2.5937)’梯形法:>> z=zeros(N+1,1);>> z(1)=1;>> for i=2:N+1v1=z(i-1);t=z(i-1)+h*v1;v2=t;z(i)=z(i-1)+h/2*(v1+v2);end1求得:z = (1 1.105 1.2205 1.3476 1.4873 1.641 1.8101 1.99622.2008 2.4258 2.6734)’RK法:>> w=zeros(N+1,1);>> w(1)=1;>> for i=2:N+1K1=w(i-1);K2=w(i-1)+K1*h/2;K3=w(i-1)+K2*h/2;K4=w(i-1)+K3*h;w(i)=w(i-1)+h*(K1+2*K2+2*K3+K4)/6;end求得:w =(1 1.1052 1.2214 1.3499 1.4918 1.6487 1.8221 2.01382.2255 2.4596 2.7183)’>> plot(x,y)>> hold on>> plot(x,z,':')>> plot(x,w,'--')>> plot(x,exp(x),'*')>> title('相同步长下三种方法与准确解的对比')>> legend('Euler法','梯形法','四阶RK法','准确解') 2)、图形对比相同步长下三种方法与准确解的对比2.82.62.42.221.81.6Euler法1.4梯形法四阶RK法1.2准确解1 00.10.20.30.40.50.60.70.80.9123)、结果分析由图得出三种方法中四阶RK法经确度最高,梯形法次之,Euler法精确度最差。

微分方程数值解实验报告三

微分方程数值解实验报告三
0.4598 0.4598 0.4598 0.4598 0.4598
Columns 61 through 65
0.4598 0.4598 0.4598 0.4598 0.4598
Columns 66 through 70
0.4598 0.4598 0.4598 0.4598 0.4598
Columns 71 through 75
0.4597 0.4597 0.4597 0.4597 0.4597
Columns 56 through 60
0.4597 0.4597 0.4597 0.4597 0.4597
Columns 61 through 65
0.4597 0.4597 0.4597 0.4597 0.4597
Columns 66 through 70
0.4597
parabolicFD(80,3200)
ans =
Columns 1 through 5
0.4599 0.4599 0.4599 0.4599 0.4599
Columns 6 through 10
0.4599 0.4599 0.4599 0.4599 0.4599
Columns 11 through 15
0.4599 0.4599 0.4599 0.4599 0.4599
Columns 16 through 20
0.4599 0.4599 0.4599 0.4599 0.4599
Columns 21 through 25
0.4599 0.4599 0.4599 0.4599 0.4599
Columns 26 through 30
Columns 21 through 25
0.4598 0.4598 0.4598 0.4598 0.4598

微分方程数值解实验报告

微分方程数值解实验报告

微分方程数值解实验报告微分方程数值解实验报告一、引言微分方程是数学中一类重要的方程,广泛应用于各个科学领域。

在实际问题中,往往难以得到微分方程的解析解,因此需要借助数值方法来求解。

本实验旨在通过数值解法,探索微分方程的数值解及其应用。

二、数值解法介绍常用的微分方程数值解法有欧拉法、改进欧拉法、四阶龙格-库塔法等。

在本实验中,我们将采用改进欧拉法进行数值解的求取。

改进欧拉法是一种一阶的显式迭代法,其基本思想是将微分方程的导数用差商来近似表示,并通过迭代逼近真实解。

具体迭代公式如下:\[y_{n+1} = y_n + h \cdot f(x_n + \frac{h}{2}, y_n + \frac{h}{2} \cdot f(x_n, y_n))\]其中,\(y_n\)表示第n步的近似解,\(h\)表示步长,\(f(x_n, y_n)\)表示微分方程的导数。

三、实验步骤1. 确定微分方程及初始条件在本实验中,我们选择经典的一阶常微分方程:\[y' = -2xy\]并给定初始条件\(y(0) = 1\)。

2. 设置步长和迭代次数为了得到较为准确的数值解,我们需要合理选择步长和迭代次数。

在本实验中,我们将步长设置为0.1,迭代次数为10。

3. 迭代计算数值解根据改进欧拉法的迭代公式,我们可以通过编写计算程序来求解微分方程的数值解。

具体计算过程如下:- 初始化:设定初始条件\(y_0 = 1\),并给定步长\(h = 0.1\)。

- 迭代计算:使用改进欧拉法的迭代公式,通过循环计算得到\(y_1, y_2, ...,y_{10}\)。

- 输出结果:将计算得到的数值解输出,并进行可视化展示。

四、实验结果与分析通过以上步骤,我们得到了微分方程的数值解\(y_1, y_2, ..., y_{10}\)。

将这些数值解进行可视化展示,可以更直观地观察到解的变化趋势。

根据实验结果,我们可以发现随着迭代次数的增加,数值解逐渐逼近了真实解。

微积分实验报告

微积分实验报告

实验名称:微积分基本定理的应用实验目的:1. 理解微积分基本定理的概念和意义。

2. 掌握利用微积分基本定理计算定积分的方法。

3. 通过实验加深对微积分基本定理的理解和应用。

实验时间:2021年10月25日实验地点:教室实验器材:1. 微积分教材2. 计算器3. 笔记本实验内容:一、实验原理微积分基本定理是微积分学中的一个重要定理,它建立了微分和积分之间的内在联系。

该定理表明,如果一个函数在闭区间[a, b]上连续,那么它在该区间上的定积分等于函数在区间端点的原函数值之差。

二、实验步骤1. 阅读教材,了解微积分基本定理的概念和证明过程。

2. 选择一个具体的函数,例如f(x) = x^2,在区间[0, 1]上计算其定积分。

3. 利用微积分基本定理,找到函数f(x)在区间[0, 1]上的一个原函数,例如F(x) = (1/3)x^3。

4. 根据微积分基本定理,计算定积分I = F(1) - F(0)。

5. 使用计算器验证计算结果,并与理论值进行比较。

6. 改变函数和区间,重复上述步骤,加深对微积分基本定理的理解。

三、实验结果与分析1. 对于函数f(x) = x^2,在区间[0, 1]上的定积分I为:I = F(1) - F(0) = (1/3)(1)^3 - (1/3)(0)^3 = 1/3计算器验证结果也为1/3,与理论值一致。

2. 对于函数f(x) = e^x,在区间[0, 1]上的定积分I为:I = F(1) - F(0) = e - 1计算器验证结果为e - 1,与理论值一致。

3. 通过改变函数和区间,可以发现微积分基本定理在不同情况下均成立,证明了其普适性。

四、实验结论通过本次实验,我们成功地验证了微积分基本定理的正确性,并掌握了利用该定理计算定积分的方法。

实验结果表明,微积分基本定理在微积分学中具有重要的地位和应用价值。

五、实验心得1. 微积分基本定理是微积分学的基础,理解和掌握该定理对于学习后续课程具有重要意义。

微分方程实验报告

微分方程实验报告

微分方程实验报告实验名称:不同数值方法解常微分方程的数值精度实验目的:比较同一数值方法不同刨分数解常微分方程的数值精度,比较不同数值方法在相同刨分数下解常微分方程的数值精度,并将他们与理论数值精度相比;求出截断误差。

实验要求:1.编写程序求解微分方程000(,)()du f x u x x b dx u x u ⎧=⎪<≤⎨⎪=⎩其中f 是x 和u 的已知函数,0u 是给定初值。

2.至少用下列方法实验步骤:一. 初值问题:(),5.11,11,222≤<⎪⎩⎪⎨⎧=-='x u u xx u u 解析解:()3122334⎪⎪⎭⎫ ⎝⎛-=x x x u .二. 解:对该问题,10=u ,00=x ,mh x m =。

0125.0=h1. Euler 公式:1(,),0,1,m m m m u u hf x u m +=+=2. 梯形法公式:111[(,)(,)]/2,0,1,m m m m m m u u h f x u f x u m +++=++=3. 三阶Heun 公式:21131132(3)/4(,),(/3,/3),(2/3,2/3),0,1,m m m m m m m m u u hf k k k f x u k f x h u hk k f x h u hk m +=++==++=++=4. 四阶Runge-Kutta 公式:211234113243(22)/6(,),(/2,/2),(/2,/2),(,),0,1,m m m m m m m m m u u hf k k k k k f x u k f x h u hk k f x h u hk k f x h u hk m +=++++==++=++=++=5. 四阶Adams 外插公式:(显式)),(,4,3,24/)9375955/(3211m m m m m m m m m u x f f m f f f f h u u ==-+-+=---+6. 四阶Gear 公式:11231(4836163)/2512/25,3,4,m m m m m m u u u u u hf m +---+=-+-+=理论数值精度p=4;其中,m u 作为()m u x 的近似值(m=1,2,…)三.计算方法的数值精度 首先取步长h 进行计算,得到()u x 在b 点的近似值()h u b ,根据误差估计,得()()ph h e u b u b M h =-≈,其中p 是方法的阶。

微分方程数值解法实验报告

微分方程数值解法实验报告

微分方程数值解法实验报告实验题目:数值解微分方程的实验研究引言:微分方程是描述自然现象、科学问题和工程问题中变量之间的关系的重要数学工具。

然而,大部分微分方程很难找到解析解,因此需要使用数值方法来近似求解。

本实验旨在研究数值解微分方程的方法和工具,并通过实验验证其有效性和准确性。

实验步骤:1.了解微分方程的基本概念和求解方法,包括欧拉法、改进的欧拉法和龙格-库塔法。

2. 配置实验环境,准备实验所需的工具和软件,如Python编程语言和相关数值计算库。

3.选择一种微分方程进行研究和求解,可以是一阶、二阶或更高阶的微分方程。

4.使用欧拉法、改进的欧拉法和龙格-库塔法分别求解选定的微分方程,并比较其结果的准确性和稳定性。

5.计算数值解与解析解之间的误差,并进行误差分析和讨论。

6.对比不同数值解法的性能,包括计算时间和计算精度。

7.结果展示和总结,根据实验结果对数值解方法进行评价和选取。

实验结果:以一阶线性常微分方程为例,我们选择经典的“衰减振荡”问题进行实验研究。

该问题的微分方程形式为:dy/dt = -λy其中,λ为正实数。

我们首先使用Python编程语言实现了欧拉法、改进的欧拉法和龙格-库塔法。

进一步,我们选择了λ=0.5和初始条件y(0)=1,使用这三种数值解法求解该微分方程,并比较结果的准确性。

通过对比数值解和解析解可以发现,在短时间内,欧拉法、改进的欧拉法和龙格-库塔法的结果与解析解非常接近。

但随着时间的增加,欧拉法的结果开始偏离解析解,而改进的欧拉法和龙格-库塔法仍然能够提供准确的近似解。

这是因为欧拉法采用线性逼近的方式,误差随着步长的增加而累积,而改进的欧拉法和龙格-库塔法采用更高阶的逼近方式,可以减小误差。

为了更直观地比较不同方法的性能,我们还计算了它们的计算时间。

实验结果显示,欧拉法计算时间最短,而龙格-库塔法计算时间最长。

这表明在计算时间要求较高的情况下,可以选择欧拉法作为数值解方法。

高等数学数学实验报告(两篇)2024

高等数学数学实验报告(两篇)2024

引言概述:高等数学数学实验报告(二)旨在对高等数学的相关实验进行探究与研究。

本次实验报告共分为五个大点,每个大点讨论了不同的实验内容。

在每个大点下,我们进一步细分了五到九个小点,对实验过程、数据收集、数据分析等进行了详细描述。

通过本次实验,我们可以更好地理解高等数学的概念和应用。

正文内容:一、微分方程实验1.利用欧拉法求解微分方程a.介绍欧拉法的原理和步骤b.详细阐述欧拉法在实际问题中的应用c.给出具体的实例,展示欧拉法的计算步骤2.应用微分方程建立模型求解实际问题a.介绍微分方程模型的建立方法b.给出一个具体的实际问题,使用微分方程建立模型c.详细阐述模型求解步骤和结果分析3.使用MATLAB求解微分方程a.MATLAB求解微分方程的基本语法和函数b.给出一个具体的微分方程问题,在MATLAB中进行求解c.分析结果的准确性和稳定性二、级数实验1.了解级数的概念和性质a.简要介绍级数的定义和基本概念b.阐述级数收敛和发散的判别法c.讨论级数的性质和重要定理2.使用级数展开函数a.介绍级数展开函数的原理和步骤b.给出一个函数,使用级数展开进行近似计算c.分析级数近似计算的精确度和效果3.级数的收敛性与运算a.讨论级数收敛性的判别法b.介绍级数的运算性质和求和法则c.给出具体的例题,进行级数的运算和求和三、多元函数极值与最值实验1.多元函数的极值点求解a.介绍多元函数的极值点的定义和求解方法b.给出一个多元函数的实例,详细阐述求解过程c.分析极值点对应的函数值和意义2.多元函数的条件极值与最值a.讨论多元函数的条件极值的判定法b.给出一个具体的多元函数,求解其条件极值和最值c.分析条件极值和最值对应的函数值和意义3.利用MATLAB进行多元函数极值与最值的计算a.MATLAB求解多元函数极值与最值的基本语法和函数b.给出一个多元函数的具体问题,在MATLAB中进行求解c.分析结果的准确性和可行性四、曲线积分与曲面积分实验1.曲线积分的计算方法与应用a.介绍曲线积分的定义和计算方法b.给出一个具体的曲线积分问题,详细阐述计算过程c.分析曲线积分结果的几何意义2.曲线积分的应用举例a.讨论曲线积分在实际问题中的应用b.给出一个实际问题,使用曲线积分进行求解c.分析曲线积分结果的实际意义和应用价值3.曲面积分的计算方法与应用a.介绍曲面积分的定义和计算方法b.给出一个具体的曲面积分问题,详细阐述计算过程c.分析曲面积分结果的几何意义五、空间解析几何实验1.空间曲线的参数方程表示与性质a.介绍空间曲线的参数方程表示和性质b.给出一个具体的空间曲线,转化为参数方程表示c.分析参数方程对应的几何意义和性质2.平面与空间直线的位置关系a.讨论平面与空间直线的位置关系的判定方法b.给出一个具体的平面与空间直线的问题,判定其位置关系c.分析位置关系对应的几何意义和应用实例3.空间直线与平面的夹角和距离计算a.介绍空间直线与平面的夹角和距离的计算方法b.给出一个具体的空间直线和平面,计算其夹角和距离c.分析夹角和距离计算结果的几何意义总结:通过本次高等数学数学实验报告(二),我们深入了解了微分方程、级数、多元函数极值与最值、曲线积分、曲面积分以及空间解析几何的相关概念和应用。

常微分方程实验报告1

常微分方程实验报告1

常微分方程实验报告(一)实验名称 姓名: 学 号 班级:一、 实验目的1. 学会用工具函数dsolve()求微分方程的解析解;2. 学会用ode45,ode23求微分方程的数值解。

二、实验原理1. 利用函数dsolve()计算常微分方程的符号解,格式为y=dsolve(‘方程1’,’方程2’,…,’初始条件1’,’初始条件2’,…,’自变量’) 自变量缺省值为t ,导数用D 表示,二阶导数用D2表示,以此类推,y 反回方程的解析解。

2. 利用ode45( ),ode23( )计算常微分方程的数值解,格式为[t,y]=ode45(‘odefun ’,[t0,tf],y0)采用变步长四节Runge-Kutta 法和五阶Runge-Kutta-Felhberg 法求数值解。

odefun:微分方程; t0:自变量的初值; tf :自变量的终值; y0:初始向量值。

输出向量t 表示节点01(,,...,)n t t t 输出矩阵y 表示对应i t 的数值解。

三、 实验范例1. 求下列微分方程的解析解 (1) y ay b '=+y=dsolve(‘Dy=a*y+b ’,’x ’)(2) sin 2,(0)0,(0) 1.y y y x y y ''''++===s=dsolve(‘D2y+Dy+y=sin(2*x)’,’y(0)=0,Dy(0)=1’,’x’) (3) ,,(0)1,(0)1f f g g g f f g ''''=+=-==s=dsolve(‘Df=f+g,Dg=g-f ’,’Df(0)=1,Dg(0)=1’,’t ’)2. 求下列方程的数值解 (1) 1,(0) 1.y y x y '=-++=odefun=inline(‘-y+x+1’,’x ’,’y ’); [x,y]=ode45(odefun,[0,1],1)(2) 123213312()()()()0.51()()y y t y t y y t y t y y t y t '=⎧⎪'=-⎨⎪'=-⎩在[0,12]内的数值解,且满足初始条件123(0)0(0)1(0)1y y y =⎧⎪=⎨⎪=⎩。

微分方程数值解试验报告

微分方程数值解试验报告

中国矿业大学(北京)理学院微分方程数值解实验报告实验名称:常微分方程数值解法学号: XXX专业年级:信息与计算科学11级姓名: XXX实验时间: 2013年3月成绩:一、实验目的,内容 二、相关背景知识介绍 三、代码四、数值结果与分析 六、计算结果的分析一、实验目的,内容掌握一阶常微分方程的初值问题常用数值解法编写程序,利用Euler 法、改进Euler 法、Adams 外插内插法及Runge-Kutta 法解决相关问题。

二、相关背景知识介绍研究一阶常微分方程的初值问题的数值解1、Euler 法和改进Euler 法 (1)Euler 法用差商近似导数问题转化为(2)改进Euler 法]2/),(),([111++++=+n n n n n u t f u t f h y y n00(,)()dy f x y a x bdx y x y ⎧=⎪≤≤⎨⎪=⎩dxdy h y y n n ≈-+1,...)3,2,1,0()(),(001=⎩⎨⎧=+=+n x y y y x hf y y n n n n(3)线性多步法(Adams 外插内插法)j n k j j j n k j j f h u+=+=∑∑=00βα (4)Runge-Kutta 法用f 在一些点的值表示ψ(tn,un,h ),使单步局部截断误差的阶和Taylor 展开法相等。

将初值问题写成积分形式:di i u i f t u h t u h t t ⎰++=+))(,()()(三、代码(Matlab )题目:用Euler 法、改进Euler 法、Adams 外插内插法及Runge-Kutta 法解决下面一阶常微分方程初值问题。

代码:方程:function y=f(t,u)y=2*t*u/(1+t^2);endEuler 法:function y=euler(n,u0,x0)t=1;u=zeros(n+1,1);h=t/n;u(1)=u0;x(1)=x0;for i=1:nx(i+1)=x0+h*i;u(i+1)=u(i)+f(x(i),u(i))*h;endPlot(x,u,'r*')end改进Euler法:function y=imeuler(n,u0,x0)err=10^-6;t=1;u=zeros(n+1,1);x=zeros(n+1,1);h=t/n;u(1)=u0;x(1)=x0;for i=1:nx(i+1)=x0+h*i;u(i+1)=u(i);ut=30;while abs(u(i+1)-ut)>errut=u(i+1);u(i+1)=u(i)+(f(x(i),u(i))+f(x(i+1),u(i+1)))*0.5*h;endendplot(x,u)endAdams内插法:k=3function y=iadams(n,u0,x0)t=1;u=zeros(n+1,1);h=t/n;u(1)=u0;u(2)=u0;u(3)=u0;x(1)=x0;x(2)=x0+h;x(3)=x0+2*h;for i=3:nx(i+1)=x0+h*i;u(i+1)=u(i)+h*(9*f(x(i+1),u(i+1))+19*f(x(i),u(i))-5*f(x(i-1),u(i-1))+f(x(i-2),u(i-2)))/24;endplot(x,u)endRunge-Kutta法:(本文采用heun法)function y=heun(n,u0,x0)t=1;u=zeros(n+1,1);h=t/n;u(1)=u0;x(1)=x0;for i=1:nx(i+1)=x0+h*i;k1=f(x(i),u(i));k2=f(x(i)+0.3333*h,u(i)+0.33333*h*k1);k3=f(x(i)+0.666663*h,u(i)+0.666666*h*k2);u(i+1)=u(i)+0.25*h*(k1+3*k3);endplot(x,u)end四、数值结果与分析对于所给方程,各个方法均给出了良好的解,其实heun方法最好10步就出了的结果。

微分方程实验报告(迎风-格式)信息科学

微分方程实验报告(迎风-格式)信息科学
0.9339 1.5258 1.9169
在Matlab命令窗口中输入命令:
u2 = peLaxW(-2,0.02,11,0,1,25)
运行程序得到实验结果为:
>> u2 = peLaxW(-2,0.02,11,0,1,25)
u2 =
Columns 1 through 8
0.6909 1.2720 1.7492 1.9402 1.7721 1.3091 0.7280 0.2508
其中 为网格剖分的步长。
数值求解流程(图):
采用Matlab程序设计语言编程实现该问题的数值求解。取 轴方向的网格步长为 轴方向的网格步长为 , 为给定的常系数它的值为2。计算 在 的近似解。
首先定义函数
function f=IniU(x)
f=1+sin(2*pi*x);
然后在Matlab命令窗口中输入命令:
实验小结:
本次实验,使我感觉到对流方程定解问题的难度相对于上次实验有点加大了。使用Lax-Wendroff格式来解决这个问题,我就知道了它的基本原理和一些基本的操作步骤,收获还是有的。
附Matlab程序代码:
首先定义函3;sin(2*pi*x);
然后
function u = peLaxW(a,dt,n,minx,maxx,M)
Columns 9 through 11
0.0598 0.2279 0.6909
实验结果分析:
通过调用程序计算 在 的近似解,由于n=11,当t=0.1时,M=5,调用u1= peLaxW(-2,0.02,11,0,1,5)计算得到t=0.1时的11个网格点对应的近似解。当t=0.5时,M=25, 故调用u2= peLaxW(-2,0.02,11,0,1,25)计算得到t=0.5时的11个网格点对应的近似解,它们的结果都是比较逼近的。并且在网格比小于等于1/2时,这个格式是比较稳定的。

微分方程数值解迎风格式

微分方程数值解迎风格式

学习“学案导学24字教学模式”心得体会“学案导学24字教学模式”作为一种新的教学模式,让处在课改误区的教师对新课改有了新的理解,范文之心得体会:学习“学案导学24字教学模式”心得体会。

教师通过“学案”把教学工作做在前头,对自己的教的过程和学生学的过程实行预知,从而使教学有备而来,不打无备之战,学生不出无备之争。

现在谈谈我学习“学案导学24字教学模式”的几点心得体会。

“学案导学24字教学模式”在内容设计上可分为三个阶段:1、课前预习阶段经过多位教师共同研究,将学案精心编写好后,于课前发给学生,让学生在课前明确学习目标,并要求学生在自学过程中用笔标注出书中的重点、难点内容。

在“学案”的指导下对课堂学习内容实行自主的预习,学生的自学不再盲目,变得有的放矢。

带着学案上的问题看书,自己能解决的问题自己完成,没必要等老师上课讲解。

标出自己尚存的疑问,带着问题走进课堂,在课堂中和同学老师交流,找到解决问题的方法;逐步掌握准确的自学方法,有意识地培养自主学习的水平等等。

教师要有意识地通过多种途径获得学生预习的反馈信息,以使上课的讲解更具针对性,合理分配授课时间,提升课堂效率,心得体会《学习“学案导学24字教学模式”心得体会》在授课过程中我深感课前预习阶段是“学案导学”教学法极其重要的一个环节,它既能充分体现“学案”的导学功能,又是实现“主体先行”的关键环节。

2、课堂学生讨论和教师精讲阶段在学生课前自主学习的基础上,教师组织学生讨论学案中的相关问题。

对于一些基础知识,能够教师提问学生,也能够学生问教师。

对于一些重点难点知识,一般可在教师的指导下展开小组讨论。

教师根据学生讨论的结果充分利用图、表及其它声像材料即时实行诱导、点拨、归纳。

教师在讨论中提出的点拨、诱导性问题,要利于学生实行准确的思维,设疑要科学、严密、有趣,要结合学生生活实际和智力发展的实际,经过努力能够得到解决,让学生“跳一跳能摘到果子”从而享受到高层次成功的喜悦。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验小结:
本次实验,使我感觉到对流方程定解问题的难度相对于上次实验有点加大了。使用Lax-Wendroff格式来解决这个问题,我就知道了它的基本原理和一些基本的操作步骤,收获还是有的。
附Matlab程序代码:
首先定义函数
function f=IniU(x)
f=1+sin(2*pi*x);
然后
function u = peLaxW(a,dt,n,minx,maxx,M)
0.6909 1.2720 1.7492 1.9402 1.7721 1.3091 0.7280 0.2508
Columns 9 through 11
0.0598 0.2279 0.6909
实验结果分析:
通过调用程序计算 在 的近似解,由于n=11,当t=0.1时,M=5,调用u1= peLaxW(-2,0.02,11,0,1,5)计算得到t=0.1时的11个网格点对应的近似解。当t=0.5时,M=25, 故调用u2= peLaxW(-2,0.02,11,0,1,25)计算得到t=0.5时的11个网格点对应的近似解,它们的结果都是比较逼近的。并且在网格比小于等于1/2时,这个格式是比较稳定的。
Columns 9 through 11
0.9339 1.5258 1.9169
在Matlab命令窗口中输入命令:
u2 = peLaxW(-2,0.02,11,0,1,25)
运行程序得到实验结果为:
>> u2 = peLaxW(-2,0.02,11,0,1,25)
u2 =
Columns 1 through 8
format long;
h = (maxx-minx)/(n-1);
for j=1:(n+2*M)
u0(j) = IniU(minx+(j-M-1)*h);
end
u1 = u0;
for k=1:M
for i=k+1:n+2*M-k
u1(i) = dt*dt*a*a*(u0(i+1)-2*u0(i)+u0(i-1))/2/h/h - ...
其精确解为
采用Lax-Wendroff差分格式进行求解。
其数值差分格式为:
其中 为网格剖分的步长。
数值求解流程(图):
采用Matlab程序设计语言编程实现该问题的数值求解。取 轴方向的网格步长为 轴方向的网格步长为 , 为给定的常系数它的值为2。计算 在 的近似解。
首先定义函数
function f=IniU(x)
dt*a*(u0(i+1)-u0(i-1))/h/2+u0(i);
end
u0 = u1;
end
u = u1((M+1):(M+n));
format short;
指导教师评语:
签字:
年月日
THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考
湖南工程学院微分方程数值解法实验报告
专业班级
姓名
组别
同组实验人员
信息与计算科学10%%
实验日期
2011年11 月 21日
第2次实验
指导老师
杨继明
评分
实验名称
用Lax-Wendroff格式解对流方程的定解问题
实验目的熟悉掌握对流方程来自解问题的数值格式并程序实现实验原理与步骤:
考虑下列对流方程的定解问题:
f=1+sin(2*pi*x);
然后在Matlab命令窗口中输入命令:
u1= peLaxW(-2,0.02,11,0,1,5)
运行程序得到实验结果为:
>> u1= peLaxW(-2,0.02,11,0,1,5)
u1=
Columns 1 through 8
1.9169 1.9578 1.6328 1.0661 0.4742 0.0831 0.0422 0.3672
相关文档
最新文档