Решение обыкновенных дифференциальных уравнений 1-го порядка

Автор работы: Пользователь скрыл имя, 06 Марта 2013 в 19:42, курсовая работа

Краткое описание

В рассматриваемом случае функциональную зависимость Y=f(X) заданную таблично (табулированную) приближенно отражают (аппроксимируют) аналитической функцией, график которой проходит возможно ближе к точкам с координатами (xi, yi), но не требуют совпадения значений искомого полинома и табулированной функции в точках (xi, yi). При подобной аппроксимации чаще всего используется метод наименьших квадратов и надстройку «Поиск решения».
Последовательность действий:
Подлежащая обработке выборка экспериментальных данных представляется на диаграмме набором точек с координатами X, Y (строится точечная диаграмма);

Содержание

СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ 2
1 АППРОКСИМАЦИЯ 4
1.1 Основы методики 4
1.2 Последовательность действий при работе в среде Exsel. 4
2 РЕШЕНИЕ ОБЫКНОВЕННОГО ДИФФЕРЕНЦИАЛЬНОГО УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА 7
2.1 Постановка задачи 7
2.2 Решение ОДУ1 неявным методом 7
2.3 Решение ОДУ1 разностным методом (Аналитико-сеточный B=a+bt ) 7
2.4 Реализация численных решений в среде Excel 8
2.5 Реализация численных решений в среде Delphi 10
2.6 Заключение 13
ЛИТЕРАТУРНЫЕ ИСТОЧНИКИ 14
ПРИЛОЖЕНИЕ А 15

Прикрепленные файлы: 1 файл

Otchet.doc

— 343.50 Кб (Скачать документ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛИТЕРАТУРНЫЕ  ИСТОЧНИКИ

  1. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся 
    втузов. -13-е изд., исправленное. -М.: Наука, Гл.Ред. физ.-мат. лит., 1986. -544 с.
  2. Волков Е.А. Численные методы: Учебное пособие. - М.: Наука. Главная редакция 
    физико-математической литературы, 1982. - 256 с.
  3. Вычислительная техника и программирование. Часть 3  «Алгоритмизация, Программы, Турбо-Паскаль».  Учебное пособие / Под общей редакцией проф. Меркта Р.В. - Одесса: ОГМУ,2001. -86 с.
  4. Годунов С.К., Рябенький В,С. Разностные схемы (введение в теорию). Учебное пособие. - М: Наука, 1973.- 400 с.
  5. Львовский  Е.Н.   Статистические  метода  построения  эмпирических  формул:  Учеб. 
    пособие для втузов. - 2-е изд., перераб. и доп. -М.:Высш. шк., 1988. -239 с.
  6. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. - 
    Томск: МП "Раско", 1991.-272 с.
  7. Турчак Л.И. Основы численных методов: Учеб. Пособие. - М.: Наука, Гл.ред.физ.-мат. 
    лит., 1987. - 320 с.
  8. Методические указания разработанные кафедрой “Техническая кибернетика”  и электронные документы – методуказания к лабораторным работам по курсам “Численные методы” и “Моделирование систем”.

 

ПРИЛОЖЕНИЕ А

program ODU1;

 

{$APPTYPE CONSOLE}

 

uses

  SysUtils,

  MyType,

  Math,

  classes, Graphics,

  Graphik in 'Graphik.pas' {GraphikFm};

 

var

     Im,I,Key: Ir;

     A,K,Y0,DT,a0,a1,a2,a3,Start: Db; // a0, a1, a2, a3 - коофициенты воздействия

     D1,D2,D4,D5,C1,C2,C3,C4,Yamax,Yamin: Db;

     T,X,Ya,Yac,Yya, DYac, DYya, ddYac, ddYya: Vec;

     F1,F2:TextFile;

 

begin

   AssignFile(F1,'Input1.txt');

   Reset(F1);

   Readln(F1,A,K,Y0,Im,DT,a0,a1,a2,a3,Start);

   CloseFile(F1);

 

   Writeln('A=', A:7:4, ' K=', K:7:4, ' Y0=', Y0:7:4);

   Writeln(' Im=', Im:3, ' DT=', DT:5:2);

   Writeln(' a0=', a0:7:4, ' a1=', a1:7:4, ' a2=', a2:7:4, ' a3=', a3:7:4 );

   Readln;

 

    D1:=exp(-DT/A); // коэфициенты аналитико-сеточного метода

    D2:=(1-exp(-DT/A))*k/2;

    D4:=1-DT/A;      // коэфециенты явного метода

    D5:=k*DT/A;

    C1:=K*a0;  // коэфициенты аналитического решения

    C2:=K*a1*(cos(a3)+A*a2*sin(a3))/(power((A*a2),2)+1);

    C3:=K*a1*(sin(a3)-A*a2*cos(a3))/(power((A*a2),2)+1);

    T[1]:=Start;

    X[1]:=a0+a1*sin(a2*T[1])*cos(a3)+a1*cos(a2*T[1])*sin(a3);

    Ya[1]:=(Y0-C1-C3)*exp(-T[1]/A)+C1+C2*sin(a2*T[1])+C3*cos(a2*T[1]);

    Yac[1]:=Y0; // Аналитико-сеточный метод с линейным воздействием

    Yya[1]:=Y0; // явный метод

    Yamin:=Ya[1];

    Yamax:=Ya[1];

    for I := 2 to Im do

      begin

        T[i]:=Start+Dt*(I-1);

        X[i]:=a0+a1*sin(a2*T[i])*cos(a3)+a1*cos(a2*T[i])*sin(a3);

        Ya[i]:=(Y0-C1-C3)*exp(-T[i]/A)+C1+C2*sin(a2*T[i])+C3*cos(a2*T[i]);

        Yac[i]:=D1*Yac[i-1]+D2*(x[i]+x[i-1]);

        Yya[i]:=D4*Yya[i-1]+D5*x[i];

      end;

 

    for I := 1 to Im do

    begin

     if Ya[i]>Yamax then Yamax:=Ya[i] else

        if Ya[i]<Yamin  then Yamin:=Ya[i];

    end;

 

    for I := 1 to Im do

      begin

        DYac[i]:=Yac[i]-Ya[i]; // погрешность

        DYya[i]:=Yya[i]-Ya[i];

        ddYac[i]:=DYac[i]/(Yamax-Yamin)*100; // относиельная погрешность

        ddYya[i]:=DYya[i]/(Yamax-Yamin)*100;

      end;

 

 

   Writeln('T',#9,'X',#9,'Ya',#9,'Ytp',#9,'Yya'#9,'DYtp',#9,'DYya',#9,'ddYtp',#9,'ddYya');

    for I := 1 to Im do

      Writeln(T[i]:3:2,X[i]:8:4,Ya[i]:8:4,Yac[i]:8:4,Yya[i]:8:4,DYac[i]:8:4,DYya[i]:8:4,ddYac[i]:8:4, ddYya[i]:8:4);

 

   GrProp.Line1Color := clRed;

   GrProp.Line2Color := clBlack;

   GrProp.Line3Color := clBlue;

   GrProp.Line4Color := clGreen;

   GrProp.Point1Color := clRed;

   GrProp.Point2Color := clBlack;

   GrProp.Point3Color := clBlue;

   GrProp.Point4Color := clGreen;

   GrProp.GridDigitsY := 3;

   GrProp.GridDigitsX := 3;

   GrProp.Line1Caption := 'X(t)';

   GrProp.Line2Caption := 'Ya(t)';

   GrProp.Line3Caption := 'Yya(t)';

   GrProp.Line4Caption := 'Yac(t)';

 

   ShowGraphik (T, X, T, Ya, T, Yac, T, Yya, Im,Im,Im,Im);

 

   GrProp.Line1Caption := 'dYac(t)';

   GrProp.Line2Caption := 'dYya(t)';

   GrProp.Line3Caption := '';

   GrProp.Line4Caption := '';

    ShowGraphik (T, ddYac, T, ddYya, T, Yac, T, Yya, Im,Im,0,0);

 

    AssignFile(F2,'Output1.txt');

    ReWrite(F2);

   Writeln(F2,'A=', A:7:4, ' K=', K:7:4, ' Y0=', Y0:7:4);

   Writeln(F2,' Im=', Im:3, ' DT=', DT:5:2);

   Writeln(F2,' a0=', a0:7:4, ' a1=', a1:7:4, ' a2=', a2:7:4, ' a3=', a3:7:4);

   Writeln(F2, 'T',#9,'X',#9,'Ya',#9,'Yac'#9,'Yya',#9,'DYac',#9,'DYya',#9,'dYac',#9,'dYya');

    for I := 1 to Im do

      Writeln(F2, T[i]:3:2,X[i]:8:4,Ya[i]:8:4, Yac[i]:8:4, Yya[i]:8:4, DYac[i]:8:4, DYya[i]:8:4, ddYac[i]:8:4, ddYya[i]:8:4 );

    CloseFile(F2);

    readln;

end.


Информация о работе Решение обыкновенных дифференциальных уравнений 1-го порядка