RSS    

   Расчет дифференциального уравнения первого, второго и третьего порядка методом Эйлера - (курсовая)

p>f14=z4=1, 39827216 f24=2*0, 8-1, 893+1, 398=1, 10480656 y4+1/2=1, 893+1, 398*0, 1=2, 0332928 z4+1/2=1, 398+1, 105*0, 1=1, 508752816 б4=z4+1/2=1, 508752816 в4=2*0, 9-2, 03+1, 5=1, 27546 y5=1, 893+1, 5*0, 2=2, 195216163 z5=1, 398+1, 275*0, 2=1, 65336416

    3. Чтобы решить уравнение третьего порядка
    y///=2x-y-y/+y//
    на отрезке [0, 1], с шагом h=0, 2 и начальными условиями
    y0//=1
    y0/=1
    y0=1

необходимо сделать 3 замены: y/=a y0/=a0=1 y//=a/=b y0//=b0=1

    b/=2x-y-a+b
    1). x1=0, 2; x1/2=0, 1

y(a1)=y(a0)+a0h y(a1/2)=y(a0)+f10h/2 a(b1)=a(b0)+в0h a(b1/2)=a(b0)+f20h/2 b(x1, y1, a1)=b(x0, y0, a0)+г0h b(x1/2, y1/2, a1/2)=b(x0, y0, a0)+f30h/2 f10=f(a0, y(a0))=1 y1/2=1+1*0, 1=1, 1 f20=f(b0, a(b0))=1 a1/2=1+1*0, 1=1, 1 f30=f(x0, y0, a0, b0)=-1 b1/2=1-1*0, 1=0, 9 б0=a1/2=1, 1 y(a1)=1+1, 1*0, 2=1, 22 в0=b1/2=0, 9 a(b1)=1+0, 9*0, 2=1, 18 г0=2*0, 1-1, 1-1, 1+0, 9=-1, 1 b(x1, y1, a1)=1-1, 1*0, 2=0, 78

    2). x2=0, 4; x1+1/2=x1+h/2=0, 3

f11=a1=1, 18 y1+1/2=1, 22+1, 18*0, 1=1. 338 f21=b1=0, 78 a1+1/2=1, 18+0, 78*0, 1=1, 258 f31=2*0, 2-1, 22-1, 18+0, 78=-1, 22 b1+1/2=-1, 22*0, 1+0, 78=0, 658 б1=a1+1/2=1, 258 y2=1, 22+1, 258*0, 2=1, 4716 в1=b1+1/2=0, 658 a2=1, 18+0, 658*0, 2=1, 3116 г1=2*0, 3-1, 338-1, 258+0, 658=-1, 338 b2=0, 78-1, 338*0, 2=0, 5124

    3). x3=0, 6; x2+1/2=0, 5

f12=a2=1, 3116 y2+1/2=1, 47+1, 3*0, 1=1, 60276 f22=b2=0, 5124 a2+1/2=1, 3116+0, 5*0, 1=1. 36284 f32=2*0, 4-1, 47-1, 31+0, 512=-1, 4708 b2+1/2=0, 4-1, 4*0, 1=0, 36542 б2=1, 36284 y3=1, 4716+1, 3116*0, 2=1, 744168 в2=0, 36542 a3=1, 3116+0, 3654*0, 2=1, 384664 г2=2*0, 5-1, 6-1, 36+0, 365=-1, 60018 b3= 0, 51-1, 60018*0, 2=0, 192364

    4). x4=0, 8; x3+1/2=0, 7

f13=1, 384664 y3+1/2=1, 74+1, 38*0, 1=1, 8826364 f23=0, 192364 a3+1/2=1, 38+0, 19*0, 1=1, 4039204 f33=2*0, 6-1, 7-1, 38+0, 19=-1, 736488 b3+1/2=0, 19-1, 7*0, 1=0, 0187152

б3=1, 4039204 y4=1, 74+1, 4*0, 2=2, 0249477 в3=0, 0187152 a4=1, 38+0, 9187*0, 2=1, 388403 г3=2*0, 7-1, 88-1, 4+0, 0187=-1, 8678416 b4=0, 192-1, 87*0, 2=-0, 1812235

    5). x4=1; x4+1/2=0, 9

f14=1, 388403 y4+1/2=2, 02+1, 388*0, 1=2, 16379478 f24=-0, 1812235 a4+1/2=1, 4-0. 181*0, 1=1, 370306608 f34=2*0, 8-2, 02-1, 388-0, 18=-1, 9945834 b4+1/2=-0, 18-1, 99*0, 1=-0, 38066266 б4=1, 3703 y5=2, 02+1, 37*0, 2=2, 2990038 в4=-0, 38066 a5=1, 388-0, 38*0, 2=1, 3122669 г4=2*0, 9-2, 16-1, 37-0, 38=-2, 114764056 b5=-0, 181-2, 1*0, 2=-0, 6041734

    Программа на Turbo Pascal
    uses crt, pram, kurs1_1;
    var
    yx, xy, l, v, p, ff, ay, by, x: array [0...10] of real;
    y, a, b: array[0...10, 0...1] of real;
    i, n, o: integer;
    c, d, h, k: real;
    label
    lap1;
    begin
    screen1;
    clrscr;

writeln('введите наивысший порядок производной не больше трех '); readln(n);

    if n=0 then begin

writeln('это прямолинейная зависимость и решается без метода Эйлера '); goto lap1; end;

    writeln('введите коэффициенты {a0, a1}');
    for i: =0 to n do
    readln(l[i]);

if (n=1) and (l[1]=0) or (n=2) and (l[2]=0) or (n=3) and (l[3]=0) then begin writeln('деление на ноль');

    goto lap1;
    end;
    writeln('введите коэффициент при x');
    readln(k);
    writeln('введите отрезок ');
    readln(c, d);
    o: =5;
    h: =abs(d-c)/o;
    writeln('шаг=', h: 1: 1);
    writeln('задайте начальные условия y(x)= ');
    for i: =0 to n-1 do
    readln(v[i]);
    if n=3 then begin
    yx[0]: =v[0];
    ay[0]: =v[1];
    by[0]: =v[2];
    p[0]: =(k*c-l[0]*v[0]-l[1]*v[1]-l[2]*v[2])/l[3];
    x[0]: =c;
    gotoxy(32, 1);
    write(' ');
    gotoxy(32, 2);
    write(' x y a b ');
    gotoxy(32, 3);

write(' ', c: 7: 7, ' ', yx[0]: 7: 7, ' ', ay[0]: 7: 7, ' ', by[0]: 7: 7, ' '); for i: =0 to o-1 do begin

    x[i]: =x[i]+h/2;
    y[i, 1]: =yx[i]+(h/2)*ay[i];
    a[i, 1]: =ay[i]+(h/2)*by[i];
    b[i, 1]: =by[i]+(h/2)*p[i];

ff[i]: =(k*x[i]-l[0]*y[i, 1]-l[1]*a[i, 1]-l[2]*b[i, 1])/l[3];

    xy[i]: =x[i]+h/2;
    yx[i+1]: =yx[i]+h*a[i, 1];
    ay[i+1]: =ay[i]+h*b[i, 1];
    by[i+1]: =by[i]+h*ff[i];
    x[i+1]: =x[i]+h/2;

p[i+1]: =(k*xy[i]-l[0]*yx[i+1]-l[1]*ay[i+1]-l[2]*by[i+1])/l[3]; end;

    for i: =0 to o-1 do begin
    gotoxy(32, 4+i);

write(' ', xy[i]: 7: 7, ' ', yx[i+1]: 7: 7, ' ', ay[i+1]: 7: 7, ' ', by[i+1]: 7: 7, ' '); end;

    gotoxy(32, 4+o);
    write(' ');
    end;
    if n=2 then begin
    x[0]: =c;
    yx[0]: =v[0];
    ay[0]: =v[1];
    p[0]: =(k*c-l[0]*yx[0]-l[1]*v[1])/l[2];
    gotoxy(32, 1);
    write(' ');
    gotoxy(32, 2);
    write(' x y a ');
    gotoxy(32, 3);

write(' ', c: 7: 7, ' ', yx[0]: 7: 7, ' ', ay[0]: 7: 7, ' ');

    for i: =0 to o-1 do begin
    x[i]: =x[i]+h/2;
    y[i, 1]: =yx[i]+(h/2)*ay[i];
    a[i, 1]: =ay[i]+(h/2)*p[i];
    ff[i]: =(k*x[i]-l[0]*y[i, 1]-l[1]*a[i, 1])/l[2];
    xy[i]: =x[i]+h/2;
    yx[i+1]: =yx[i]+h*a[i, 1];
    ay[i+1]: =ay[i]+h*ff[i];
    x[i+1]: =x[i]+h/2;
    p[i+1]: =(k*xy[i]-l[0]*yx[i+1]-l[1]*ay[i+1])/l[2];
    end;
    for i: =0 to o-1 do begin
    gotoxy(32, 4+i);

write(' ', xy[i]: 7: 7, ' ', yx[i+1]: 7: 7, ' ', ay[I+1]: 7: 7, ' '); end;

    gotoxy(32, 4+o);
    write(' ');
    end;
    if n=1 then begin
    x[0]: =c;
    yx[0]: =v[0];
    p[0]: =(k*x[0]-l[0]*yx[0])/l[1];
    for i: =0 to o-1 do begin
    x[i]: =x[i]+h/2;
    y[i, 1]: =yx[i]+(h/2)*p[i];
    xy[i]: =x[i]+h/2;
    ff[i]: =(k*x[i]-l[0]*y[i, 1])/l[1];
    yx[i+1]: =yx[i]+h*ff[i];
    x[i+1]: =x[i]+h/2;
    p[i+1]: =(k*xy[i]-l[0]*yx[i+1])/l[1];
    end;
    gotoxy(32, 1);
    write(' ');
    gotoxy(32, 2);
    write(' x y ');
    gotoxy(32, 3);
    write(' ', c: 7: 7, ' ', yx[0]: 7: 7, ' ');
    for i: =0 to o-1 do begin
    gotoxy(32, 4+i);
    write(' ', xy[i]: 7: 7, ' ', yx[i+1]: 7: 7, ' ');
    end;
    gotoxy(32, o+4);
    write(' ');
    end;
    lap1: readln;
    pramo;
    delay(10000);
    clrscr;
    end.
    _
    ЗАПУСК ПРОГРАММЫ НА ВЫПОЛНЕНИЕ

Программа находится в файле kursova1. pas, и имеет 2 модуля, в которых содержатся заставки. Модули находятся в файлах pram. tpu и kurs1_1. tpu. Для запуска файла kursova1. pas в Turbo Pascal необходимо нажать F9. Появится первая заставка, далее нажать enter и ввести все необходимые начальные условия: порядок производной, коэффициенты при членах рада, отрезок и начальные значения у(х0). На экране выводится шаг вычисления и таблица с ответами. После нажатия enter выводится вторая заставка, после чего мы возвращаемся к тексту программы.

    ОПИСАНИЕ ПРОГРАММЫ
    1 – ввод данных, используемых в программе

2 – использование метки, очистка экрана, ввод требований, решение дифференциального уравнения в зависимости от ввода начальных условий

3 – присвоение начальных условий для дифференциального уравнения третьего порядка

    4 – вывод таблицы со значениями

5 – ввод формул метода Эйлера для уравнения третьего порядка

6 – присвоение начальных условий для решения дифференциального уравнения второго порядка

    7 – вывод таблицы для уравнения второго порядка
    8 – формулы метода Эйлера для уравнения второго порядка

9 – начальные условия для дифференциального уравнения первого порядка 10 – формулы метода Эйлера для решения уравнения первого порядка 11 – вывод таблицы

12 – обращение к метке, задержка для просмотра результатов, очистка экрана, конец программы.

Страницы: 1, 2


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.