Курсовая работа: Исследование неявного метода Эйлера для линейной системы ОДУ с постоянным и переменным шагом

U=feval(funU, t+h);

if (t+h)>tfinal, h=tfinal-t; end

yp1=(I-A*h)\(y+h*B*U);

eam=abs(h*((yp1-y)-h*(y-ym1)/h1)/(h+h1));

if eam<=ep

yt=(I-A*h/2)\((I-A*h/2)\(y+h/2*B*U)+h/2*B*U);

h1=h;

ym1=y;

y=yp1;

eout=[eout;abs(y-yt).'];

tout=[tout;t]; yout=[yout;y.'];

h=min(sqrt((n*ep)./eam)*h);

t=t+h;

else h=h/2;

end

if trace

home, t, h, y

end

end

- rkpost1.m

function [tout, yout, eout]=rkpost1(funA, funB, funU, t0, tfinal, y0, h, trace)

if nargin<7, h=(tfinal-t0)/5; end

if nargin<8, trace=1; end

t=t0; y=y0;

tout=t; yout=y.';

if trace

clc, t, h, y

end

A=feval(funA);

B=feval(funB);

К-во Просмотров: 357
Бесплатно скачать Курсовая работа: Исследование неявного метода Эйлера для линейной системы ОДУ с постоянным и переменным шагом