文档库 最新最全的文档下载
当前位置:文档库 › 欧拉方法+改进的欧拉法+经典R-K法

欧拉方法+改进的欧拉法+经典R-K法

欧拉方法+改进的欧拉法+经典R-K法
欧拉方法+改进的欧拉法+经典R-K法

Euler方法与改进的Euler方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

Euler 方法与改进的Euler 方法的应用 一、问题背景 在工程和科学技术的实际问题中,常需求解微分方程,但常微分方程中往往 只有少数较简单和典型的常微分方程(例如线性常系数常微分方程等)可求出其 解析解,对于变系数常微分方程的解析求解就比较困难,而一般的非线性常微分方 程的求解困难就更不用说了。大多数情况下,常微分方程只能用近似方法求解。 这种近似解法可分为两大类:一类是近似解析法,如级数解法、逐次逼近法等;另 一类是数值解法,它给出方程在一些离散点上的近似值。 二、数学模型 在具体求解微分方程时,需具备某种定解条件,微分方程和定解条件合在一 起组成定解问题。定解条件有两种:一种是给出积分曲线在初始点的状态,称为 初始条件,相应的定解问题称为初值问题。另一类是给出积分曲线首尾两端的状 态,称为边界条件,相应的定解问题称为边值问题。在本文中主要讨论的是给定 初值条件的简单Euler 方法和改进的Euler 方法来求解常微分方程。 三、算法及流程 Euler 方法是最简单的一种显式单步法。对于方程 ()y x f dx dy ,= 考虑用差商代替导数进行计算,取离散化点列 nh x x n +=0,L n ,2,1,0= 则得到方程的近似式 ()()()()n n n n x y x f h x y x y ,1≈-+ 即 ()n n n n y x hf y y ,1+=+ 得到简单Euler 方法。具体计算时由0x 出发,根据初值,逐步递推二得到系列离 散数值。 简单Euler 方法计算量小,然而精度却不高,因而我们可以构造梯形公式 ()()[]η=++ =+++0111,,2 y y t f y t f h y y n n n n n n 其中()N a b h -=。这是一个二阶方法,比Euler 方法精度高。但是上述公式右边 有1+n y ,因而是隐式差分方程,可以用迭代方法计算1+n y 。初值可以由Euler 公式

多面体欧拉公式的发现(二)共9页

●教学时间 第十课时 ●课题 §9.9.2 研究性课题:多面体欧拉公式的发现(二) ●教学目标 (一)教学知识点 1.欧拉公式的证明. 2.欧拉公式的应用. (二)能力训练要求 1.使学生能理解多面体欧拉公式的证明过程并能叙述其证明思路. 2.使学生掌握多面体欧拉公式并灵活地将其应用于解题中. (三)德育渗透目标 继续培养学生寻求规律、发现规律、认识规律、并利用规律解决问题的能力. ●教学重点 欧拉公式的应用. ●教学难点 欧拉公式的证明思路. ●教学方法 学导式 本节课继续上节课对欧拉公式的研究活动,遵循寻求规律——发现规律——认识规律——应用规律的学习过程,对上节课已猜想出的欧拉公式

进一步深入研究,探索它的证明思路,让学生了解这种证明思想,进而达到熟练掌握欧拉公式的目标,以便于学生得心应手地将欧拉公式应用到各种问题的解决中. ●教具准备 投影片三张 问题5(1)(2)(记作§9.9.2 A) 第一张:课本P 59 第二张:本课时教案例1(记作§9.9.2 B) 第三张:本课时教案例2(记作§9.9.2 C) ●教学过程 Ⅰ.课题导入 [师]上节课我们已经猜想出了欧拉公式并且同学们也已自学了它的证明过程,这节课我们继续对它的证明方法及其重要应用进行学习和探讨. Ⅱ.讲授新课 的欧拉公式的证明进行了自学,那么,[师]上节课我们已对课本P 58 谁能说一下课本中的证明思路和关键是什么? [生]将立体图形转化为平面图形. [师]好,前面,我们经常使用把不在同一平面中的几何图形的问题转化为同一平面中图形的问题,所以此处如果能把求一个简单多面体的V、F、E三者之间的关系问题,转化为平面中的问题就会前进一大步了. 那么课本中是怎样实现转化的呢? [生]把多面体想成是用橡皮膜做成的,即课本P 图9—85的多面体, 58

常微分方程作业欧拉法与改进欧拉法

P77 31.利用改进欧拉方法计算下列初值问题,并画出近似解的草图:dy + =t = t y y ≤ ≤ ,2 ;5.0 0,3 )0( )1(= ,1 ? dt 代码: %改进欧拉法 function Euler(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y+1; 调用:Euler(0,3,[0,2],0.5) 得到解析解:hold on; y=dsolve('Dy=y+1','(y(0)=3)','t'); ezplot(y,[0,2]) 图像:

dy y =t - t y ;2.0 t = ≤ )0( 0,5.0 ,4 )2(2= ≤ ? ,2 dt 代码: function Euler1(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y^2-4*t; 调用: Euler1(0,0.5,[0,2],0.2) 图像:

欧拉及改进的欧拉法求解常微分方程

生物信息技术0801 徐聪U200812594 #include #include void f1(double *y,double *x,double *yy) { y[0]=2.0; x[0]=0.0; yy[0]=2.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y[i]=y[i-1]+0.2*(y[i-1]-x[i-1]); yy[i]=x[i]+1+exp(x[i]); printf("若x=%f,计算值是%f,真实值是%f,截断误差是%f\n ",x[i],y[i],yy[i],y[i]-yy[i]); } }; void f2(double *y,double *x,double *yy) { y[0]=1.0; x[0]=0.0; yy[0]=1.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y[i]=y[i-1]+0.2*(2*y[i-1]+x[i-1]*x[i-1]); yy[i]=-0.5*(x[i]*x[i]+x[i]+0.5)+1.25*exp(2*x[i]); printf("若x=%f,计算值是%f,真实值是%f,截断误差是%f\n ",x[i],y[i],yy[i],y[i]-yy[i]); } }; void f3(double *y,double *x,double *yy,double *y0) { y[0]=2.0; x[0]=0.0; yy[0]=2.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y0[i]=y[i-1]+0.2*(y[i-1]-x[i-1]); y[i]=y[i-1]+0.1*(y[i-1]-x[i-1]+y0[i-1]-x[i-1]);

用Euler法、改进的Euler法及四阶的龙格库塔法求解初值问题

微分方程数值解课程设计题目 1(30分)分别用Euler 法、改进的Euler 法及四阶的龙格库塔 法求解初值问题:????? =- =1 )0(2'u u t u u 1 0≤> Euler('fun',0,1,0.1,10) T = Columns 1 through 10 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.1918 1.2774 1.3582 1.4351 1.5090 1.5803 1.6498 1.7178 Column 11 1.0000 1.7848 ②.当h=0.2时 >> Euler('fun',0,1,0.2,5) T = 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.0000 1.2000 1.3733 1.5315 1.6811 1.8269 (3).改进的Euler 法: M 文件:Euler_modify.m function E=Euler_modify(fun,x0,y0,h,N) x=zeros(1,N+1);y=zeros(1,N+1);

实验8欧拉法_改进欧拉法_线性多步法

西华数学与计算机学院上机实践报告 课程名称:计算方法A 年级:2010级 上机实践成绩: 指导教师:严常龙 姓名:李国强 上机实践名称:解常微分方程初值问题 学号:362011********* 上机实践日期:2013.12.25 上机实践编号:8 上机实践时间:14:00 一、目的 1.通过本实验加深对欧拉法、改进欧拉法、线性多步法的构造过程的理解; 2.能对上述四种方法提出正确的算法描述编程实现,观察计算结果的改善情况。 二、内容与设计思想 自选常微分方程的初值问题,分别用欧拉法、改进欧拉法求解。 分别用以上两种方法求解常微分方程初值问题: 2 '()1,([0.0,1.4],0.1)(0)0.0 y x y h y ?=+=?=?求解区间取步长 三、使用环境 操作系统:Win 8 软件平台:Visual C++ 6.0 四、核心代码及调试过程 #include #include #define f(y) (y*y+1) #define m 0.0//初值为0 #define h 0.1//步长为0.1 #define n 14//迭代次数为14 #define a 0.0//定义区间长度 #define d 1.4 void gjol();//改进欧拉法 void ol();//欧拉法 main() { ol(); printf("\n"); gjol(); } void gjol() {

int i; float y[n+1]; y[0]=m;//赋初值 printf("改进欧拉法\n"); for(i=0;i

欧拉公式的应用

欧拉公式的应用 绪论 本文首先介绍了一下欧拉公式以及推广的欧拉公式,对欧拉公式的特点作了简要的探讨.欧拉公式形式众多,在数学领域内的应用范围很广,本文对欧拉公式在三角函数中的应用作了详细的研究,欧拉公式在求三角级数中的应用中、在证明三角恒等式时、解三角方程的问题时、探求一些复杂的三角关系时,可以避免复杂的三角变换,利用较直观的代数运算使得问题得到解决.另一方面,利用欧拉公式大降幂,能够把高次幂的正余弦函数表示为一次幂函数的代数和,克服了高次幂函数在运算上的不方便. 关键词:欧拉公式三角函数降幂级数三角级数

目录 绪论......................................错误!未定义书签。目录......................................错误!未定义书签。 一、绪论 (1) 二、欧拉公式的证明、特点、作用 (1) 三、欧拉公式在三角函数中的应用 (4) (一) 倍角和半角的三角变换 (4) (二) 积化和差与差化积的三角变换 (4) (三) 求三角表达式的值 (5) (四) 证明三角恒等式 (6) (五) 解三角方程 (7) (六) 利用公式求三角级数的和 (7) (七) 探求一些复杂的三角关系式 (8) (八) 解决一些方程根的问题 (9) (九) 欧拉公式大降幂 (10) 结束语 (15)

一、绪论 欧拉公式形式众多,有多面体欧拉公式、欧拉求和公式、cos sin i e i θθθ=+、欧拉积分等多种形式、立体几何、工程方面等方面.由于欧拉公式有多种形式,在数学领域中的应用范围很广,本文只介绍欧拉公式的一种形式“cos sin i e i θθθ=+”以及这种形式在数学中的应用. 二 、欧拉公式的证明、特点、作用 1748年,欧拉在其著作中陈述出公式cos sin i e i θθθ=+,欧拉公式在数学的许多定理的证明和计算中,有着广泛的应用.它将定义和形式完全不同的指数函数和三角函数联系起来,为我们研究这两种函数的有关运算及其性质架起了一座桥梁.同时我们知道三角函数的恒等变换是中学数学中的一个重要内容,也是一个难点,但由于三角恒等变换所用公式众多,这便给解决三角变换问题带来了诸多不便.下面将通过欧拉公式,将三角函数化为复指数函数,从而将三角变换化为指数函数的代数运算,从而使得问题简单化,并给出了欧拉公式在其它几个方面的应用,在高等数学中的部分应用. 欧拉公式cos sin i e i θθθ =+它的证明有各种不同的证明方法,好多《复变 函数》教科书上,是以复幂级数为工具,定义复变指数函数和复变三角函数来进行证明的.下面我们介绍一种新的证明方法:极限法. 证明 令()1n f z i n θ?? =+ ??? (),R n N θ∈∈. 首先证明 ()lim cos sin n f z i θθ→∞ =+. 因为 arg 1n i narctg n n θθ?? ?? += ? ????? , 所以 2 2 211cos sin n n i i narctg i narctg n n n n θθθθ????????? ?+=++ ? ? ? ???????? ?????. 从而2 2 2lim 1lim 1cos sin n n n n i narctg i narctg n n n n θθθθ→∞→∞????????? ?+=++ ? ? ? ???????? ?????.

Euler法和改进的Euler法实验报告

用Euler法和改进的Euler法求u’=-5u(0≤t≤1),u(0)=1的数值解,步长h=0.1,0.05,并比较两个算法的精度。 解: 1)当步长h=0.1时 编写程序如下所示 clf clear clc %直接求解微分方程 y=dsolve('Dy=-5*y','y(0)=1','t') %Euler法 h=0.1; t=0:h:1; n=length(t); u=zeros(1,n); u(1)=1; zbu(1,1)=t(1); zbu(2,1)=u(1); for i=2:n f=-5*u(i-1); u(i)=u(i-1)+h*f; zbu(1,i)=t(i); zbu(2,i)=u(i); end zbu %改进的Euler法 v=zeros(1,n); v0=zeros(1,n); v(1)=1; zbv(1,1)=t(1); zbv(2,1)=v(1); for i=2:n f=-5*v(i-1); v0(i)=v(i-1)+h*f; v(i)=v(i-1)+h/2*(f-5*v0(i)); zbv(1,i)=t(i); zbv(2,i)=v(i); end zbv plot(t,u,'r*','markersize',10) hold on, plot(t,v,'r.','markersize',20)

hold on, ezplot(y,[0,1]) hold on, title('Euler法和改进的Euler法比较(h=0.1)), grid on legend('Euler法','?改进的Euler法','解析解') %解真值 h=0.1; t=0:h:1; n=length(t); for i=1:n y(i)=1/exp(5*t(i)); %通过第一部分程序直接解得的解析解 zby(1,i)=t(i); zby(2,i)=y(i); end zby 我们可以得到计算后的结果图像如图一所示 图1 Euler法和改进的Euler法比较(h=0.1) 同时,我们得到Euler法,改进的Euler法和解析解的在各点处数值分别如下所示: t坐标0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 改进欧拉 1.0000 0.6250 0.3906 0.2441 0.1526 0.0954 0.0596 0.0373 0.0233 0.0146 0.0091

数值分析习题六解答

习 题 六 解 答 1、在区间[0,1]上用欧拉法求解下列的初值问题,取步长h=0.1。 (1)210(1)(0)2y y y '?=--?=?(2)sin (0)0x y x e y -'?=+?=? 解:(1)取h=0.1,本初值问题的欧拉公式具体形式为 21(1)(0,1,2,)n n n y y y n +=--= 由初值y 0=y(0)=2出发计算,所得数值结果如下: x 0=0,y 0=2; x 1=0.1,2100(1)211y y y =--=-= x 2=0.2,2211(1)101y y y =--=-= 指出: 可以看出,实际上求出的所有数值解都是1。 (2)取h=0.1,本初值问题的欧拉公式具体形式为 21(sin )(0,1,2,)n x n n n y y h x e n -+=++= 由初值y 0=y(0)=0出发计算,所得数值结果如下: x 0=0,y 0=0; x 1=0.1, 02 1000 (sin )00.1(sin 0)00.1(01)0.1x y y h x e e -=++=+?+=+?+= x 2=0.2, 122110.1 (sin )0.10.1(sin 0.1)0.10.1(0.10.9)0.2 x y y h x e e --=++=+?+=+?+= 指出: 本小题的求解过程中,函数值计算需要用到计算器。 2、用欧拉法和改进的欧拉法(预测-校正法)求解初值问题,取步长h=0.1。 22(00.5) (0)1 y x y x y '?=-≤≤? =? 解:(1) 取h=0.1,本初值问题的欧拉公式具体形式为 2 1(2)(0,1,2,)n n n n y y h x y n +=+-= 由初值y 0=y(0)=1出发计算,所得数值结果如下:

数值计算上机第七题关于改进欧拉方法

7. 取h =0.2,用改进欧拉方法求解下列初值问题。 '(0)5 y y ì?í?=?020x #) 第七题: #include "fstream.h" #include "math.h" int main() { double x0,x1,y0,yp,yc,h; ifstream infile("in.dat"); ofstream outfile("out.dat"); infile>>x0>>x1>>h>>y0;//依次输入x 的初值x0,x 的终值x1,步长h ,y (0)的值y0 outfile<

0 5 0.2 7.03239 0.4 9.89185 0.6 13.9148 0.8 19.5739 1 27.5337 1. 2 38.7287 1.4 54.4735 1.6 76.6169 1.8 107.759 2 151.558 2.2 213.156 2.4 299.787 2.6 421.626 2.8 592.981 3 833.977 3.2 1172.91 3. 4 1649.6 3.6 2320.01 3.8 3262.89 4 4588.97 4.2 6453.97 4.4 9076.93 4.6 12765.9 4.8 17954.1 5 25250.8 5.2 35513 5.4 49945.8 5. 6 70244.3 5.8 98792.3

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法 2

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法. 2.龙格-库塔法。 3.单步法的收敛性与稳定性。 重点、难点 一、微分方程的数值解法 在工程技术或自然科学中,我们会遇到的许多微分方程的问题,而我们只能对其中具有较简单形式的微分方程才能够求出它们的精确解。对于大量的微分方程问题我们需要考虑求它们的满足一定精度要求的近似解的方法,称为微分方程的数值解法。本章我们主要 讨论常微分方程初值问题?????==00 )() ,(y x y y x f dx dy 的数值解法。 数值解法的基本思想是:在常微分方程初值问题解的存在区间[a,b]内,取n+1个节点a=x 0<x 1<…<x N =b (其中差h n = x n –x n-1称为步长,一般取h 为常数,即等步长),在这些节点上把常微分方程的初值问题离散化为差分方程的相应问题,再求出这些点的上的差分方程值作为相应的微分方程的近似值(满足精度要求)。 二、欧拉法与改进欧拉法 欧拉法与改进欧拉法是用数值积分方法对微分方程进行离散化的一种方法。 将常微分方程),(y x f y ='变为() *+=?++1 1))(,()()(n x n x n n dt t y t f x y x y 1.欧拉法(欧拉折线法) 欧拉法是求解常微分方程初值问题的一种最简单的数值解法。 欧拉法的基本思想:用左矩阵公式计算(*)式右端积分,则得欧拉法的计算公式为:N a b h N n y x hf y y n n n n -= -=+=+)1,...,1,0(),(1 欧拉法局部截断误差 11121 )(2 ++++≤≤''=n n n n n x x y h R ξξ或简记为O (h 2)。

Euler方法及其改进方法

《常微分方程》课内实验任务书 学生姓名:张学阳1009300132 及学号: 学院:理学院 班级:数学101 课程名称:常微分方程 题目:Euler方法及其改进方法 指导教师 李鹏松教授 姓名及职称: 朱秀丽讲师 方向实验师 2012年10月17日

《常微分方程》课内实验 实验一 Euler 方法及其改进方法 一、实验目的 1.通过用Matlab 编程运用Euler 方法及其改进方法求解常微分方程初值问题,更进一步掌握常微分方程及其数值解法课程的理论内容,加深对数值解法的理解。 2.熟悉Matlab 编程环境。 二、实验学时和类型 本次实验为2学时、设计性实验。 三、实验内容 1.实验题目 运用Euler 方法及其改进方法求解常微分方程初值问题,具体问题在课内实验习题中学生任意抽取。 2.实验原理 Euler 方法:???+==+) ,()(100n n n n y x hf y y x y y Euler 改进方法:[]?? ? ??++==+++),(),(2)(11100n n n n n n y x f y x f h y y x y y 3.设计思想 在能够获得精确解的题目抽取题目,分别应用Euler 方法、Euler 改进方法求解数值结果,将所得结果列表或者画图,参照精确结果,对Euler 方法、Euler 改进方法的计算误差进行分析。 4.参考程序源代码 %fun 为目标函数字符串 %x0为自变量初始值。 %y0为fun(x0); %bou=[a,b]自变量区间 %h 为步长 fun='1/x^2-y^2';

bou=[1,6]; a=bou(1); b=bou(2); x0=1; y0=0; h=0.1; n=ceil((b-a)/h); xx=linspace(a,b,n+1)'; yy=zeros(1,n+1)'; lengthx=length(xx); xx(1)=x0;yy(1)=y0; for i=2:n+1 x=xx(i-1);y=yy(i-1); k=eval(fun); yy(i)=yy(i-1)+h*k; end Ys=dsolve('Dy=1/x^2-y^2','y(1)=0','x'); for i=1:lengthx x=xx(i); exacty(i)=eval(Ys); end YY=exacty'; yend=[xx,yy,YY] p=plot(xx,yend(:,2),'k-o','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',4); hold on; pp=plot(xx,yend(:,3),'r-.+','LineWidth',0.8,... 'MarkerEdgeColor','r',... 'MarkerFaceColor','m',... 'MarkerSize',6); legend([p,pp],'Eula','jiequejie'); %fun为目标函数字符串 %x0为自变量初始值。 %y0为fun(x0); %bou=[a,b]自变量区间 %h为步长 fun='1/x^2-y^2'; bou=[1,6]; a=bou(1); b=bou(2); x0=1; y0=0;

用改进的欧拉方法和四阶龙格-库塔方法解初值问题

用改进的欧拉方法和四阶龙格-库塔方法解初值问题 一、题目: 取步长2.0=h ,分别用改进的欧拉方法和四阶龙格—库塔方法解初值问题 ? ??=≤≤+=.1)0(;10,'y x y x y 并比较结果。 二、基本思想: 1.改进的欧拉方法 改进的欧拉方法用梯形公式计算()()()()+1+1-=,.n n x n n x y x y x f x y x dx ?中的积分,并以 n y 和+1n y 分别表示()n y x 和()+1n y x 的近似值,就得到 ()()()+1+1+1=+,+,.2 n n n n n n h y y f x y f x y (梯形公式) 梯形公式也是一个一步法公式。由于公式右端也含有未知的+1n y ,故被称作是隐式的。隐式格式实际上是关于+1n y 的一个函数方程。为了避免解方程,可以采用欧拉方法计算初始值,再由梯形公式计算。这样建立起来的计算格式称为改进的欧拉格式: ()()()()+1+1+1=+,,=+,+,.2 p n n n n n n n n n y y hf x y h y y f x y f x y ????? 梯形公式也可以采用迭代法求解。如果仍然采用欧拉方法计算迭代初值,那么计算格式就是 []()[]()[]()() 0+1+1+1+1+1=+,,=+,+,.2n n n n k k n n n n n n y y hf x y h y y f x y f x y ????? 由于已假定(),f x y 满足里普希兹条件,所以有 [][][]()[]() [][]+1-1-1+1+1+1,+1+1+1+1+1-=-,-.22 k k k k k k n n n n n n n n h hL y y f x y f x y y y ≤ 从而,迭代的收敛条件是0<<1.2hL 2.四阶龙格-库塔方法 龙格—库塔方法不是用求导数的办法,而是用计算不同点上()y x f ,的函数值,然后对这些函数值作线性拟合,构造近似公式。组合的原则是使得近似公式与泰勒展开式有尽可能多的项吻合,以达到较高的精度。 改进的欧拉格式

知识点223 欧拉公式(解答)

1、(2009?凉山州)观察下列多面体,并把下表补充完整.观察上表中的结果,你能发现a、b、c之间有什么关系吗?请写出关系式. 考点:欧拉公式。 专题:图表型。 分析:三棱柱的顶点数为:3×2=6,棱数为:3×3=9,面数为:2+3=5; 四棱柱的顶点数为:4×2=8,棱数为:4×3=12,面数为:2+4=6; 五棱柱的顶点数为:5×2=10,棱数为:5×3=15,面数为:2+5=7; 六棱柱的顶点数为:6×2=12,棱数为:6×3=18,面数为:2+6=8. ∴a+c﹣b=2. 解答:解: 规律为a+c﹣b=2. 点评:可先由简单图形得到解决问题的方法. 2、(2006?烟台)下列图形中,图(a)是正方体木块,把它切去一块,得到如图(b)(c)(d)(e)的

(1)我们知道,图(a)的正方体木块有8个顶点、12条棱、6个面,请你将图(b)、(c)、(d)、(e)中木块的顶点数、棱数、面数填入下表; (2)上表,各种木块的顶点数、棱数、面数之间的数量关系可以归纳出一定的规律,请你试写出顶点数x、棱数y、面数z之间的数量关系式. 考点:欧拉公式。 专题:规律型。 分析:(1)小题,只要将图(b)、(c)、(d)、(e)各个木块的顶点数、棱数、面数数一下就行;数的时候要注意:图中不能直接看到的那一部分不要遗漏,也不要重复,可通过想象计数,正确填入表内;(2)通过观察找出每个图中“顶点数、棱数、面数”之间隐藏着的数量关系,这个数量关系用公式表示出来即可. 点评:命题立意:考查平均数的求法,搜集信息的能力(读表),作图能力及用样本估计总体的统计思想. 3、(1)图①是正方体木块,把它切去一块,可能得到形如图②、③、④、⑤的木块.我们知道,图①的正方体木块有8个顶点,12条棱,6个面,请你将图②、③、④、⑤中木块的顶点数、棱数、面数填人下表: (2)观察此表,请你归纳上述各种木块的顶点数、棱数、面数之间的数虽关系是:顶点数+面数﹣棱数=2. (3)图⑥是用虚线画出的正方体木块,请你想象一种与图②~⑤不同的切法,把切去一块后得到的那一块的每条棱都改画成实线,则该木块的顶点数为8,棱数为6,面数为3. 考点:欧拉公式。 专题:规律型。 分析:(1)只要将图(b)、(c)、(d)、(e)各个木块的顶点数、棱数、面数数一下就行;数的时候要

改进欧拉(c语言程序)

1)改进欧拉法求解常微分方程的初值问题 #include float func(float x,float y) { return(y-x); } float euler(float x0,float xn,float y0,int N) { float x,y,yp,yc,h; int i; x=x0; y=y0; h=(xn-x0)/(float)N; for(i=1;i<=N;i++) { yp=y+h*func(x,y); x=x0+i*h; yc=y+h*func(x,yp); y=(yp+yc)/2.0; } return(y); } main() { float x0,xn,y0,e; int n; printf("\ninput n:\n "); scanf("%d",&n); printf("input x0,xn:\n "); scanf("%f,%f",&x0,&xn); printf("input y0:\n "); scanf("%f",&y0); e=euler(x0,xn,y0,n); printf("y(%f)=%6.4f",y0,e); } input n: 20 input x0,xn: 1,6 input y0: 2 y(2.000000)=7.0000Press any key to continue (2)四阶龙格—库塔法

#include float func(float x,float y) { return(x-y); } float runge_kutta(float x0,float xn,float y0,int N) { float x,y,y1,y2,h,xh; float d1,d2,d3,d4; int i; x=x0; y=y0; h=(xn-x0)/(float)N; for(i=1;i<=N;i++) { xh=x+h/2; d1=func(x,y); d2=func(xh,y+h*d1/2.0); d3=func(xh,y+h*d2/2.0); d4=func(xh,y+h*d3); y=y+h*(d1+2*d2+2*d3+d4)/6.0; x=x0+i*h; } return(y); } main() { float x0,xn,y0,e; int N; printf("\ninput n:\n "); scanf("%d",&N); printf("input x0,xn:\n "); scanf("%f,%f",&x0,&xn); printf("input y0:\n "); scanf("%f",&y0); e=runge_kutta(x0,xn,y0,N); printf("y(%f)=%8.6f",y0,e); } input n: 10 input x0,xn: 1,2 input y0: 5 y(5.000000)=2.833863Press any key to continue

常微分方程作业欧拉法与改进欧拉法

常微分方程作业欧拉法与改进欧 拉法 P77 31.利用改进欧拉方法计算下列初值问题,并画出近似解的草图: (1) 3 =y 1,y(0) =3,0汀岂2, :t=0.5; dt 代码: %改进欧拉法 fun cti on Euler(t0,y0,i nv,h) n=rou nd(i nv(2)-in v(1))/h; t(1)=t0; y(1)=y0; for i=1: n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h;

y(i+1)=y (i)+1/2*h*(fu n( t(i),y(i))+ fun( t(i+1),y1(i+1))) end plot(t,y,'*r') fun cti on y=fun (t,y); y=y+1; 调用:Euler(0,3,[0,2],0.5) 得到解析解:hold on; y=dsolve('Dy=y+1','(y(0)=3)', 't'); ezplot(y,[0,2])

图像: (2)女=y2—4t,y(0) =0.5,0 叭乞2, :t =0.2; dt 代码: function Euler1(t0,y0,inv,h) n=rou nd(i nv(2)-in v(1))/h; t(1)=t0; y(1)=y0; for i=1: n y1(i+1)=y(i)+h*fu n(t(i),y(i)); t(i+l)=t(i)+h; y(i+1)=y (i)+1/2*h*(fu n( t(i),y(i))+ fun( t(i+1),y1(i+1)))

end plot(t,y,'*r') fun cti on y=fun (t,y); y=y A2-4*t; 调用: Euler1(0,0.5,[0,2],0.2) 图像:

改进Euler方法

第九章 解常微分方程初值问题 4. 改进Euler 方法 我们先用Euler 公式求的一个初步的近似值,再用梯形公式将它校正一次,即按(5)迭代一次得y 1+n ,这个结果称为校正值,这样建立的校正系统通常成为改进Euler 公式. y 1+n = y n +h /2(f (n n y x ,) + f (x n +1, n y + h* f (n n y x ,))) (6) 即迭代公式为: ? ???? +=+=+),,(*),,(*1p n n c n n n p y x f h y y y x f h y y (7)

进过计算得出改进Euler 法比Euler 法 明显改善了精度. 上机实验⑷ 上机题目:贬值求一阶常微分方程的初值问题 实验目的:掌握各种Euler 方法和梯形法。 进过计算结果来分析四种方法的优缺点,掌握规律。 分析结果。 实验要求:用不同的方法来解同一个例子。 ① 上机前充分准备,复习有关内容,写出计算步骤,查对程 序。②改进Euler 法在Matlab 环境中运算,并分析出最好的方法,再给出它的流程图。③实验结束后写出完整的实验报告。 算法说明:①经过所给出的方程组和初值初步改变方程组。 ②由以上四种方法的计算公式来逐步计算y 的每个值。 ③最后为了方便比较列为表最适合。 上机例题:例1.后退Euler 方法解初值问题,h =0.1 ? ??=??='1y(0)1x 0 2x/y, -y y Matlab 程序: function[x,y]=gaijing(f,x0,y0,a,b,n) h=(b-a)/n; %定义并计算步长 for k=1:n+1 x(k)=a+(k-1)*h; %计算x(k) end y(1)=y0; for i=1:n yp=y(i)+h*subs(subs(f,x(i)),y(i)); %由改进Euler 的公式计算. yc=y(i)+h*subs(subs(f,x(i+1)),yp); y(i+1)=(1/2)*(yp+yc); end disp(sprintf(' i x(i) y(i)')); %为了方便以规定格式先输出 i,x(i),y(i). for i=1:n disp(sprintf(' %d %f %f',i,x(i+1),y(i+1))); %为了方便观察结果在先输出的 格式下输出结果 end s=y(i); 运行结果: [x,y]=gaijing('y-2*x/y',0,1,0,1,10) i x(i) y(i) 1 0.100000 1.095909

数值分析--6微分方程数值解习题课

微分方程 初值问题数值解 习题课

一、应用向前欧拉法和改进欧拉法求由如下积分 2 x t y e dt -=? 所确定的函数y 在点x =0.5,1.0,1.5的近似值。 解:该积分问题等价于常微分方程初值问题 2 '(0)0x y e y -?=??=?? 其中h=0.5。其向前欧拉格式为 2 ()100ih i i y y he y -+?=+?? =?? 改进欧拉格式为 22()2(1)10()20 ih i h i i h y y e e y --++? =++???=? 将两种计算格式所得结果列于下表

二、应用4阶4步阿达姆斯显格式求解初值问题 '1(0)1y x y y =-+??=? 00.6x ≤≤ 取步长h=0.1. 解:4步显式法必须有4个起步值,0y 已知,其他3个123,,y y y 用4阶龙格库塔方法求出。 本题的信息有: 步长h=0.1;结点0.1(0,1, ,6)i x ih i i ===; 0(,)1,(0)1f x y x y y y =-+== 经典的4阶龙格库塔公式为

11234(22)6 i i h y y k k k k +=++++ 1(,)1i i i i k f x y x y ==-+ 121(,)0.05 1.0522 i i i i hk h k f x y x y k =++=--+ 232(,)0.05 1.0522 i i i i hk h k f x y x y k =++=--+ 433(,)0.1 1.1i i i i k f x h y hk x y k =++=--+ 算得1 1.0048375y =,2 1.0187309y =,3 1.0408184y = 4阶4步阿达姆斯显格式 1123(5559379) 24i i i i i i h y y f f f f +---=+-+- 1231 (18.5 5.9 3.70.90.24 3.24)24 i i i i i y y y y y i ---=+-+++ 由此算出 4561.0703231, 1.1065356, 1.1488186y y y === 三、用Euler 方法求 ()'1,0101 x y e y x x y =-++≤≤= 问步长h 应该如何选取,才能保证算法的稳定性? 解:本题 (),1x f x y e y x =-++ (),0,01x y f x y e x λ'==-<≤≤

欧拉法,改进欧拉法,斐波那契法基础原理及经过流程图

1欧拉法求微分方程 方法说明 欧拉(Euler)法是解常微分方程初值问题 (4.1) 最简单的数值方法,其具体做法是,将区间[a,b]进行N等分: ,步长.并将式(4.1)写成等价的积分形式 (4.2) 再对式(4.2)右端积分用矩形公式计算,则有 , (4.3) 在式(4.3)右端取,舍去余项。则得 , 作为的近似值。 在式(4.3)右端取,舍去余项,则得

y2=y1+?f(x1,y1) 作为的近似值. 一般地,在式(4.3)右端取舍去余项,则得 (4.4) 作为的近似值.式(4.4)为欧拉法计算公式. 我们知道微分方程的解是平面上的一族积分曲线,这族曲线中过点的积分曲线就是初值问题式(4.1)的解. 欧拉法的几何意义是,过点引斜率为的积分曲线的切线,此切线与直线的交点为,再过点引以为斜率的切线与直线的交点为,依此类推,从出发,作以为斜率的切线,此切线与直线交点为.于是便得到过点的一条折线,见图4.1.过的积分曲线则用此折线来代替.因此,这种方法亦称折线法. 图4.1

例:用欧拉法求微分方程[ ]2',(0)1,0.1,0,1x y y y h y 区间为=-== 欧拉法流程图如下: 欧拉法程序如下: clear; clc; x1=0; x2=1; h=0.1; x0=0; y0=1; N=(x2-x1)/h;%要计算的次数 x(1)=x0; y(1)=y0; for n=1:N x(n+1)=x(n)+h;

y(n+1)=y(n)+h*(y(n)-2*x(n)/y(n)); end X=x Y=y 2改进欧拉法求微分方程 方法说明 由于欧拉法采用矩形公式计算积分产生较大截断误差.改进欧拉法(又称改进折线法)是采取梯形公式来计算式(4.3)右端积分,则有 (5.1) 在式(5.1)右端取,舍去余项,则得 将作为的近似值. 在式(5.1)右端再取,舍去余项,则得 将作为的近似值. 一般地,在式(5.1)右端取,舍去余项.则得 (5.2)

相关文档
相关文档 最新文档