好文档 - 专业文书写作范文服务资料分享网站

欧拉法解常微分方程概述

天下 分享 时间: 加入收藏 我要投稿 点赞

数学与计算科学学院

实 验 报 告

实验项目名称 Eular方法求解一阶常微分方程数值解 所属课程名称 偏微分方程数值解 实 验 类 型 验证性 实 验 日 期 2015-3-26

班 级 学 号

姓 名 成 绩

一、实验概述: 【实验目的】 熟练掌握应用显性Eular法和隐式Eular法求解一般一阶常微分方程的近似数值解。 【实验原理】 虽然求解常微分方程有各种各样的解析方法,但解析方法只能用来求解一些特殊类型的方程。求解从实际问题当中归结出来的微分方程主要靠数值解法。欧拉方法是一类重要的数值解法。这类方法回避解y(x)的函数表达式,而是寻求它在一系列离散节点上的近似值,相邻的两个节点的间距称作步长。假定步长为定数。 欧拉方法是一类离散化方法,这类方法将寻求解y(x)的分析问题转化为计算离散值值的代数问题,从而使问题获得了实质性的简化。然而随之带来的困难是,由于数据量往往很大,差分方法所归结出的可能是个大规模的代数方程组。 【实验环境】 1.硬件环境 2.2.软件环境 MATLAB7.0 二、实验内容: 第 1 页 共 14 页

【实验过程】(实验步骤) (一)实验任务 描述某种化学反应过程的方程,利用显性和隐形Eualar方法求解下列一阶线性微分方程组的近似数值解: ?dy1??0.04y?104yy112?dt?dy472?2dt?0.04y1?10y1y2?3?10y2 ? ?dy372?3?10y2?dt?y(0)?1,y(0)?0,y(0)?023?1 (二)求解过程 Eular方法: 一阶线性微分方程初值问题 ?y'?f(x,y),a?x?b??y(a)?y0 a?x0?x1?....?xn?b (1) xn?x0?nh,h为步长方程离散化:差分和差商 y'(x0)?y1?y0y1?y0 ?x1?x0hy1?y0h y1?y0?hf(x0,y0) (2) f(x0,y0)?yn?1?yn?hf(x0,y0) 通过初始值y0,依据递推公式(2)逐步算出y1,y2,....,yn就为显性的Eular方法。 隐形Eular方法: ?y1?y0?hf(x1,y1) ? (3) y?y?hf(x,y)nn?1n?1?n?1 公式(3)即为隐式Eular公式。

第 2 页 共 14 页

(三)程序算法 1. 利用显式Eular法方求解 利用MATLAB进行求解,编写脚本文件如下: 文件名:hql.m %显性Eular方法 f0=1; g0 =0;z0=0 delta=0.01; time=1; t=0:delta:time; f=zeros(size(t)); g=zeros(size(t)); z=zeros(size(t)); f1=zeros(size(t)); g1=zeros(size(t)); z1=zeros(size(t)); f(1)=f0; g(1)=g0; z(1)=z0; for i=2:length(t) f1(i-1) = -0.04*f(i-1) + 10000*f(i-1)*g(i-1); f(i)=f(i-1)+f1(i-1)*delta; g1(i-1) = 0.04*f(i-1) - 10000*f(i-1)*g(i-1)-3*10^7*g(i-1)^2; g(i)=g(i-1)+g1(i-1)*delta; z1(i-1)=3*10^7*g(i-1)^2; 第 3 页 共 14 页

z(i)=z(i-1)+z(i-1)*delta; Fun=f+g+z end figure plot(t,f,'o'); xlabel('t'); ylabel('y1'); title('t-y1变化图') figure plot(t,g,'o'); xlabel('t'); ylabel('y2'); title('t-y2变化图') figure plot(t,z,'o'); xlabel('t'); ylabel('y3'); title('t-y3变化图') figure plot(t,Fun); xlabel('t'); ylabel('y1+y2+y3'); title('t-y1+y2+y3变化图') 第 4 页 共 14 页

欧拉法解常微分方程概述

数学与计算科学学院实验报告实验项目名称Eular方法求解一阶常微分方程数值解所属课程名称偏微分方程数值解实验类型验证性
推荐度:
点击下载文档文档为doc格式
91ud42r7if6msol1o4w75dq8n1si8z00u9s
领取福利

微信扫码领取福利

微信扫码分享