eulerpro.m

来自「《实用化工计算机模拟:MATLAB在化学工程中的应用 》这本书光盘里的程序~」· M 代码 · 共 23 行

M
23
字号
function [x,y] = eulerpro(fun,x0,xf,y0,h)
% 功能:用改进的欧拉方法计算一阶常微分方程的初值问题
% fun: 微分方程的f(x,y)函数句柄或函数名
% x0: 积分下限
% xf: 积分上限
% h: % 积分步长
%
%   Author: HUANG Huajiang
%   Copyright 2003 UNILAB Research Center, 
%   East China University of Science and Technology, Shanghai, PRC
%   $Revision: 1.0 $  $Date: 2003/05/21 $

n = fix((xf-x0)/h);
x(1) = x0;
y(1) = y0;
for i = 1:(n-1)
    x(i+1) = x0 + i*h;
    y1 = y(i) + h*feval(fun,x(i),y(i));
    y2 = y(i) + h*feval(fun,x(i+1),y1);
    y(i+1) = (y1 + y2)/2;
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?