Численные методы решения дифференциального уравнения

Автор работы: Пользователь скрыл имя, 20 Марта 2014 в 18:57, курсовая работа

Описание работы

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

Файлы: 1 файл

Курсовая.doc

— 461.50 Кб (Скачать файл)

      x_end - точка, в которой необходимо вычислить результат

      n - количество шагов для вычисления результата }

var

  i   : word;      { счетчик цикла }

  x,h : extended;  { текущая точка и длина шага }

  res : extended;  {переменная для накопления конечного результата функции }

  k1,k2,k3,k4: extended; {вспомогательные переменные вычисления результата }

begin

  h:= (x_end - x0_)/n; { Находим длину шага }

  res:= y0_; { устанавливаем начальные значения}

  x:=x0_;

  writeln(F1,x:0:3,'   ',res:0:3); {Вывод расчитанных значений в файл}

 

  for i:=1 to n do

    begin { вычисляем результат по методу Рунге-Кутта 4го порядка }

      k1:=f(x,res);

 

      k2:=f(x+h/2,res+h*k1/2);

      k3:=f(x+h/2,res+h*k2/2);

      k4:=f(x+h,res+h*k3);

      res:=res+h*(k1+2*k2+2*k3+k4)/6;

      x:=x+h; { переходим к следующей точке }

 

      writeln(F1,x:0:3,'   ',res:0:3); {Вывод расчитанных значений в файл}

    end;

  RungeKutt:=res; { присваиваем конечный результат функции }

end;

 

 

begin

  ClrScr;

 

  assign(F1,'C:\runge.txt');  {Настройка записи в текстовый файл}

  rewrite(F1);

 

  writeln('Численное решение дифференциальных уравнений:');

  writeln('Алгоритм Рунге-Кутты 4-го порядка');

  writeln('   Tdy(y)/dt + y(t)=kx      T=2; k=1');

  writeln;

 

  {Считывание  данных для расчета}

  write('Введите x0=');    readln(x0);

  write('Введите x_end='); readln(x_end);

  write('Введите n=');     readln(n);

  write('Введите y0=');    readln(y0);

 

  writeln;

  writeln('  x     y');    {Вывод "шапки" таблицы на экран}

  writeln(F1,'  x     y'); {Вывод "шапки" таблицы в фай}

 

  writeln('n=',n, ' Результат: ',RungeKutt(func, x0, x_end, y0, n):5:5);

 

  Close(F1);

  readln;

end.

 

 

Заключение

В процессе выполнения курсовой работы закреплены теоретические навыки и знания в вопросе численного решения дифференциальных уравнений на основе метода Рунге-Кутты, приобретены основные навыки составления и отладки процедур и функций программ для решения дифференциальных уравнений на основе метода Рунге-Кутты.

При реализации на практике задания для курсовой работы, заключающегося в решении дифференциального уравнения методом Рунге-Кутты, была составлена и отлажена программа.

Установлено, что при задании определенного интервала значений шага интегрирования ошибка интегрирования уменьшается с уменьшением шага. Однако нельзя обойти вниманием тот факт, что для довольно малых значений с уменьшением шага интегрирования ошибке свойственно увеличивается. Это связано с лавинообразным ростом числа требуемых для получения решения вычислений и c увеличением ошибки вычислений.

 

 

Список использованных источников

  1. Самарский А.А., Гулин А.В. Численные методы – М.: Наука, ГРФМЛ, 1989.- 432с.
  2. Бахвалов Н.С. Численные методы – М.: Наука, ГРФМЛ,1987.-600 с.
  3. Маликов В.Т. Вычислительные методы и применение – Киев: В.Ш.-1989.-213 с.
  4. 1. Мудров А.Е.Численные методы для ПЭВМ на языках Паскаль, Фортран и Бейсик – Томск, МП “Раско”, 1991 г.

 

 


Информация о работе Численные методы решения дифференциального уравнения