Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.10.2009
Сообщений: 108
1

Метод Адамса 4-го порядка

29.05.2011, 18:20. Показов 5384. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот задача 2-го порядка...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
PROGRAM Ad_2;
  USES
     CRT;
  LABEL
     MET;
  CONST
     a = 1;
     b = 2;
     e = 0.01;
  VAR
     h : Real;
     i,u : Integer;
     Y1,Y2,Y3,X : Array [1..30] of Real;
  BEGIN
    clrscr;
    h:=0.05;
    Y1[1]:=1;
    Y2[1]:=1;
    Y3[1]:=1;
    repeat
          u:=0;
MET:   for i:=1 to 2 do
          begin
             Y1[i+1]:=Y1[i]+h*(Y1[i]+h/2*(3*Y2[i]-2*Y3[i]));
             Y2[i+1]:=Y2[i]+h*(Y2[i]+h/2*(-Y3[i]-3*Y1[i]));
             Y3[i+1]:=Y3[i]+h*(Y3[i]+h/2*(2*Y1[i]-Y2[i]));
          end;
       if u=0
          then
             begin
                h:=h/2;
                u:=1;
                goto MET
             end;
     until ((abs(Y1[2])-Y1[3])<=(3*e)) and ((abs(Y2[2])-Y2[3])<=(3*e))
                                       and ((abs(Y3[2])-Y3[3])<=(3*e));
    h:=h*2;
    for i:=2 to (round((b-a)/h)+1) do
       begin
          Y1[i+1]:=Y1[i]+h/2*(3*(3*Y2[i]-2*Y3[i])-(3*Y2[i-1]-2*Y3[i-1]));
          Y2[i+1]:=Y2[i]+h/2*(3*(-Y3[i]-3*Y1[i])-(-Y3[i-1]-3*Y1[i-1]));
          Y3[i+1]:=Y3[i]+h/2*(3*(2*Y1[i]-Y2[i])-(2*Y1[i-1]-Y2[i-1]))
       end;
    writeln ('   X           Y1          Y2          Y3');
    writeln ('-------------------------------------------');
    for i:=1 to (round((b-a)/h)+1) do
       begin
          X[i]:=a+h*(i-1);
          writeln (X[i]:7:4, Y1[i]:12:4, Y2[i]:12:4, Y3[i]:12:4);
       end;
    writeln;
    write (' ':5,'Шаг интегрирования: ',h:4:4);
    readkey
  END.

На выходе как я понимаю для 4-го должно быть X Y1 Y2 Y3 Y4???

Добавлено через 52 минуты
Помогите пожалуйста исправить здесь ошибки
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program Project1; 
 
uses 
 crt; 
 
var 
 x,y,x0,xn,y0,h, 
 k1,k2,k3,k4:real; 
 n,i: integer; 
 Fi : array [1..30]of real;
 
function fxy(x,y: real): real; 
begin 
 fxy:=x+y;
end; 
 
begin 
 Write ('Vvedite diapazon otrezka (a,b): '); 
 Readln(x0,xn); 
 Write ('Vvedite y(', x0:2:2, '): '); 
 Readln (y0); 
 Write ('Vvedite kolichestvo shagov izmenenia argumenta: '); 
 Readln (n); 
 h := (xn - x0) / n; 
 x := x0; 
 y := y0;
 {SetLength(Fi[i],n+1);}
 Fi[i] := fxy(x,y);
 
 Writeln('Nachalnoe znachenie: ', ' x = ', x:4:4, ', y = ', y:4:4); 
 
 {//Нахождение первых 3-ёх точек (4-тая f0) методом Рунге-Кутта }
 for i := 1 to 3 do 
 begin 
 k1 := h*fxy(x,y); 
 Write(k1:4:4); 
 k2 := h*fxy(x+h/2,y+k1/2); 
 k3 := h*fxy(x+h/2,y+k2/2); 
 k4 := h*fxy(x+h,y+k3); 
 y := y + h * (k1+2*k2+2*k3+k4) / 6; 
 x := x + h; 
 Fi[i]:= fxy(x,y);
 Writeln('Shag #', i, ' , x = ', x:4:4, ', y = ', y:4:4); 
 readkey; 
 end; 
 
 {//Нахождение остальных точек методом Адамса  }
 for i := 4 to n do 
 begin 
 y := y + h * (55*Fi[i-1]-59*Fi[i-2]+37*Fi[i-3]-9*Fi[i-4])/24; 
 x := x + h; 
 Fi [i]:= fxy(x,y);
 Writeln('Shag #', i, ' , x = ', x:4:4, ', y = ', y:4:4); 
 readkey; 
 end; 
 
{//Проверка другим методом }
 x := x0; 
 y := y0; 
 for i := 1 to n do 
 begin 
 k1 := h*fxy(x,y); 
 k2 := h*fxy(x+h/2,y+k1/2); 
 k3 := h*fxy(x+h/2,y+k2/2); 
 k4 := h*fxy(x+h,y+k3); 
 y := y + h * (k1+2*k2+2*k3+k4) / 6; 
 x := x + h; 
 Writeln('Shag #', i, ' , x = ', x:4:4, ', y = ', y:4:4); 
 readkey; 
 end; 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2011, 18:20
Ответы с готовыми решениями:

Диффур второго порядка - Метод Рунге Кутты (уравнение 2го порядка)
Ребята, помогите разобраться. Нужно решить дифференциальное уравнение второго порядка с помощью...

Метод Адамса 3-го порядка
Матлаб выдает ошибку на 34 строке, а я не могу понять в чем причина :( Помогите пожалуйста. Код...

Метод интегрирования Адамса 7-го порядка
Программа полета спутника по орбите. unit Unit1; interface uses Windows, Messages,...

Графики - Метод Рунге-Кутта и Метод Адамса
Пожалуйста помогите!!! очень срочно нужно сделать графики (два в одном): метод Рунге-Кутта и метод...

0
29.05.2011, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2011, 18:20
Помогаю со студенческими работами здесь

Графики - Метод Рунге-Кутта и Метод Адамса
Вот задание:

Метод Адамса
здравствуйте помогите доделать программу с интерфейсом, на старом матлабе она идёт на версии 6.5 и...

Метод Адамса
Привет,помогите исправить ошибку в коде,я знаю точно что они в строках с out,но не могу разобраться...

Метод Адамса
Уважаемые форумчане, мне задали написать курсовую по методу Адамса, уже прочитал несколько книг по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru