demoeuler.m

来自「这是《Numerical Methods with MATLAB: Imple」· M 代码 · 共 21 行

M
21
字号
function demoEuler(h)
% demoEuler  Integrate dy/dt = t - 2*y;  y(0) = 1 with Euler's method
%
% Synopsis:  demoEuler(h)
%
% Input:     h  = (optional) stepsize, Default:  h = 0.2 
%
% Output:    A table comparing the numerical and exact solutions

if nargin<1,  h = 0.2;  end

tn = 1;  y0 = 1;                      %  stopping time and IC
[t,y] = odeEuler('rhs1',tn,h,y0);     %  Euler integration
yex = ( 2*t - 1 + 5*exp(-2*t) )/4;    %  Exact solution

fprintf('      t      y_Euler    y_exact     error\n');
for k=1:length(t)
  fprintf('%9.4f  %9.6f  %9.6f  %10.2e\n',t(k),y(k),yex(k),y(k)-yex(k))
end
fprintf('\nMax error = %10.2e for h = %f\n',norm(y-yex,inf),h); 

⌨️ 快捷键说明

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