常微分方程的差分方法-欧拉法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常微分方程的差分方法-欧拉法
一、摘要:人类社会已迈进电子计算机时代。

在今天,熟练地
运用计算机进行科学计算,已成为广大科技工作者和学者的一项基
本技能,数值分析的基本内容是数值算法的设计与分析,科学技术
当中常常需要求解常微分方程的定解问题,本文中主要以解决此问
题最简单形式(一阶方程的初值问题)来求解微分方程。

虽然求解
常微分方程有各种各样的解析方法,但解析方法只能用来求解一些
特殊类型的方程,求解从实际问题中归结出来的微分方程主要主要
靠数值解法,本文就数值解法中的差分方法进行求解微分方程。

二、关键词:差分方法、初值问题、数值解法、MATLAB
三、引言:科学计算不应当将计算方法片面的理解为各种算法
的简单罗列和堆积,它也是一门内容丰富、思想方法深刻而有着自
身理论体系的数学学科。

微积分的发明是人类智慧的伟大发展。


解常微分方程有各种各样的解析方法,但解析方法只能用来求解一
些特殊类型的方程,求解从实际问题中归结出来的微分方程主要主
要靠数值解法。

怎样应用数值解法求解从实际问题中归结出来的微
分方程呢?
四、正文
y′=f(x,y) (1)
y(x0)=y0 (2)
方程(1)中含有导数项y′(x),这是微分方程的本质特征,也正
是它难以求解的症结所在。

数值解法的第一步就是设法消除其导数项,这项手续称离散化。

由于差分是微分的近似运算,实现离散化的基本途径是用差商替代
导数。

譬如,若在点x n列出方程(1):
y′(x n)=f(x n,y(x n))
替代其中的导数项y′(x n),结果有:并用差商y(x n+1)−y(x n)
h
y(x n+1)≈y(x n)+hf(x n,y(x n))
设用y(x x)的近似值y n代入上式的右端,记所得结果为y n+1,这样导出的计算公式:
y(x n+1)=y(x n)+hf(x n,y(x n)),n=0,1,2, (3)
这就是众所周知的欧拉(Euler)格式。

若初值y0是已知的,则据式(3)可以逐步算出数值解y1,y2,…。

为简化分析,人们常在y n为准确,即在y n=y(x n)的前提下估计
误差y(x n+1)-y n+1。

这种误差称为局部截断误差。

称一种数值方法的精度是p阶的,如果其局部截断误差为O
(h p+1)。

对于欧拉格式(3),假定y n=y(x n),则据方程(1)有:
y n+1=y(x n)+hf(x n,y(x n))
=y(x n)+h y′(x n)
而按泰勒公式
y(x n+1)=y(x n)+h y′(x n)+h 2
2
y′′(ε), x n<ε<x n+1因此有
y(x n+1)-y n+1=h 2
2
y′′(ε) 这说明欧拉格式仅为一阶方法。

例求解初值问题
{x′+5x+y=e′y′−x−3y=0 x|t=0,y|t=0
解:用MATLAB写出如下程序:% By lyqmath
function main()
clc;
clear all;
close all;
% ³õÖµ
t0 = 0;
y0 = [0; 0];
xmax = 1;
h = 0.01;
% ¼ÆËã
n = (xmax - t0)/h; for i = 1 :n+1 if i == 1 t(i) = t0; y(:, i) = y0; else
t(i) = t0 + (i - 1)*h;
y(:, i) = y(:, i - 1) + h*test_fun(t(i-1), y(:, i-1)); end end % »æͼ figure; hold on ; box on ;
plot(t, y(1, :), 'r-', t, y(2, :), 'g-'); grid on ;
legend('x', 'y');
xlabel('t', 'FontWeight', 'Bold', 'Color', 'r'); ylabel('data', 'FontWeight', 'Bold', 'Color', 'r');
title('Euler·¨¼ÆËã΢·Ö·½³Ì×é By lyqmath', 'FontWeight', 'Bold', 'Color', 'r'); % ΢·Ö·½³Ì
function fxy = test_fun(t,y) fxy = zeros(2, 1)
fxy(1) = exp(t) - 5*y(1) - y(2); fxy(2) = y(1) + 3*y(2);
当h=0.01时,得出以下图像:
当h=0. 1时,得到以下图像:
0.1
0.2
0.3
0.4
0.50.6
0.7
0.8
0.9
1
00.10.20.30.40.50.6
0.70.80.91t
d a t a
Euler 法计算微分方程组 By lyqmath
取其中一部分
0.10.20.30.4
0.50.60.70.80.91
00.10.20.30.4
0.5
0.6
0.7
t
d a t a
Euler 法计算微分方程组 By lyqmath
0.08
0.0850.090.0950.1
0.1050.110.1150.12
t
d a t a
Euler 法计算微分方程组 By lyqmath
由上h=0.001和h=0.1所得的图像,可看出精度h越精,图像拟合的越好,拟合度越高,效果越佳。

五、结束语
虽然求解常微分方程有各种各样的解析方法,但解析方法只能用来求解一些特殊类型的方程。

求解从实际问题当中归结出来的微分方程主要靠数值解法。

欧拉方法是一类重要的数值解法。

这类方法回避解y(x)的函数表达式,而是寻求它在一系列离散节点上的近似值,相邻的两个节点的间距称作步长。

假定步长为定数。

欧拉方法是一类离散化方法,这类方法将寻求解y(x)的分析问题转化为计算离散值值的代数问题,从而使问题获得了实质性的简化。

然而随之带来的困难是,由于数据量往往很大,差分方法所归结出的可能是个大规模的代数方程组。

相关文档
最新文档