Показать сообщение отдельно
Старый 15.05.2013, 15:34   #1 (permalink)
Alexei18
Member
 
Регистрация: 22.10.2012
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите с модифицированным методом Эйлера

помогите пожалуйста, уже не знаю что делать, препод дал курсач и мне достался модифицированный метод Эйлера, а в примере только усовершенствованный, а учитель такой, что ни в чем не поможет и ни чего не объяснит. Прошу пожалуйста хотябы примерчик какой нито скиньте, а я по нему попробую сделать. Внизу усовершенствованный метод.

Program Kursach;
uses crt;
const n=200;
f=90;
fi=72;
L=0.00557;
C=0.00002;
W=2*PI*f;
PI=3.14;
E0=15;
R1=30;
R2=25;
R3=50;
R4=1.88;
R5=15;
R6=50;
t1=0.003;
t2=0.009;
var A,B,G,D,U0,I0,t0,t,I,U,hx,k,j,E,KU1,KU2,KI1,KI2:re al;
m:integer;
O:TEXT;
function E1(ft:real):real;
begin
E:=E0+E0*sin(W*ft+fi);
If (t<t1)Then
E1:=E
Else
E1:=0;
end;
begin
assign(O,'D:\result.txt');
rewrite(O);
k:=0;
J:=5;
t0:=0;
U0:=0;
I0:=0;
hx:=(t2-t0)/n;
Writeln(O,' t I U ');
Writeln(O,t:9:4,I:11:7,U:11:6);
A:=R2/(R1+R2);
B:=R1*R2/(R1+R2);
G:=(R5+R6)/(R3+R5+R6);
D:=1/(R3+R5+R6);
For m:=1 to n do
begin
k:=k+1;
KU1:=hx*(1/C*(I0*G-U0*D));
t:=t0+hx;
KU2:=hx*(1/C*((I0+KI1)*G-(U0+KU1)*D));
KI2:=hx*(1/L*(E1(t0+hx)*A-(I0+KI1)*(R4+B+G*R3)-(U0+KU1)*G));
U:=U0+((KU1+KU2)/2);
I:=I0+((KI1+KI2)/2);
I0:=I;
U0:=U;
t0:=t;
if k=j then
begin
Writeln(O,' ',t:6:4,' ',I:10:7,' ',U:10:6);
j:=j+5;
end;
end;
close(O);
end.
Alexei18 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070