41305

Численные методы и компьютерные технологии решения систем дифференциальных уравнений и дифференциальных уравнений n-го порядка

Лабораторная работа

Информатика, кибернетика и программирование

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

Русский

2013-10-23

778.94 KB

31 чел.

Содержание

  1.  Цель работы……………………………………………………...…….3
  2.  Задание……………………………………………………………...….3
  3.  Основные сведения исправленного метода Эйлера….………...….3
  4.  Блок-схема алгоритма ...………………………………………..…....5
  5.  Текст программы ….……………………………………………...…..6
  6.  Результаты решения задачи в УМС MathCad…………………….........8

Список литературы…………………………………………………........9


  1.  Цель работы

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

  1.  Задание
  2.  Изучить численные методы и компьютерные технологии решения систем дифференциальных уравнений и дифференциальных уравнений n-го порядка.
  3.  Составить алгоритм и программу решения дифференциального уравнения 2-го порядка. Варианты даны в таблице. В программе предусмотреть вывод на печать значений аргумента, результатов численного решения, включая первую производную, точных значений функции и погрешности счета.
  4.  Ввести программу в ЭВМ, отладить ее и выполнить. Результаты приложить к отчету.
  5.  Решить данное дифференциальное уравнение в среде УМС Mathcad. Результаты представить в табличной форме и в виде графика.

вар.

Дифференциальное

уравнение

Нач. условия

Отрезок

[x0; xk]

Шаг

h

Метод

Точное решение

y0

y0

2

1

1

[0; 0,5]

0,05

2

  1.  Основные сведения исправленного метода Эйлера

В исправленном методе Эйлера для повышения точности в разложении искомой функции в ряд Тейлора учитываются три первых члена ряда Тейлора

.  (4.7)

При этом вторая производная находится по формуле правой односторонней конечной разности

.

Тогда из (4.7)

Или, с учетом вышеприведенных обозначений,

.

Аналогично для узла формулу исправленного метода Эйлера можно записать в виде

.  (4.8)

Рис. 4.2. Исправленный метод Эйлера

Структура этой формулы такая же, что и для метода Эйлера. Но вместо производной в начале элементарного участка здесь используется среднее значение производных в начале и в конце этого участка. То есть в исправленном методе Эйлера производная функции на интервале также принимается постоянной, но равной среднему значению производных в начале и в конце интервала. Это повышает точность решения уравнения.

Исправленный метод Эйлера иллюстрируется графиками на рис. 4.2. Здесь через и условно обозначены значения производных в начале и в конце элементарного участка , а через – их среднее значение. Как видно, локальная погрешность этого метода действительно меньше, чем для метода Эйлера.

Полученная схема решения является неявной, поскольку искомое значение входит в обе части уравнения (4.8). Поэтому используются две итерации. Сначала вычисляется промежуточное значение искомой функции в точке методом Эйлера по формуле (4.6)

,

а затем подставляется в уравнение (4.8):

.

Локальная погрешность исправленного метода Эйлера . Объем вычислений в этом методе больше, поскольку на каждом шаге значение функции вычисляется 2 раза. Алгоритм представлен на рис. П8,а.

  1.  Блок-схема алгоритма

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

  1.  Текст программы

program laba8;

uses crt;

label 1,2;

var x0,xk,y0,z0,h,x1,y2,y1,z1,z2,z,yt,n:real;

begin

clrscr;

y0:=1; x0:=0; xk:=0.5; h:=0.05; z0:=1; yt:=1;

writeln('Введите n');

read(n);

h:=(xk-x0)/n;

writeln('x=',x0,' ':7,' y=',y0,' ':7,' z=',z0,' ':7,'уточненное=',yt);

2:

x1:=x0+h;

if x1>xk then goto 1 else;

y2:=y0+h*z0;

z2:=z0+h*(-(1+z0*z0)/(1+x0*x0));

y1:=y0+(h/2)*(z0+z2);

z1:=z0+(h/2)*((-(1+z0*z0)/(1+x0*x0))

      +(-(1+z2*z2)/(1+x1*x1)));

yt:=1-x1+2*ln(1+x1);

writeln('x1=',x1:3:3, ' ':3, 'y1=',y1:3:4, ' '

 :3, 'z=',z1:3:4, ' ':3, 'yt=',yt:3:4, ' ':3);

x0:=x1;

y0:=y1;

z0:=z1;

goto 2;

1:

end. 

Рис.2. Результаты решения в среде Pascal

  1.  Результаты решения задачи в УМС MathCad

Список литературы

1. Турчак Л.И. Основы численных методов: учеб. пособие для вузов/ Л.И. Турчак, П.В. Плотников. – 2-е изд., перераб. и доп. – М.: Физматлит, 2003. – 304 с.: ил. (Первое издание – 1987 г.)

2. Амосов А.А. Вычислительные методы для инженеров: учеб. пособие/ А.А. Амосов, Ю.А. Дубинский, Н.В. Копченова. – 2-е изд., доп. – М.: Изд-во МЭИ, 2003. – 596 с.: ил. (Первое издание – 1994 г.)

3. Макаров Е.Г. Инженерные расчеты в Mathcad (+СD)/ Е.Г. Макаров. – СПб.: Питер, 2007. – 592 с.: ил. +CD-ROM

4. Поршнев С.В. Численные методы на базе Mathcad/ С.В. Поршнев, И.В. Беленкова. – СПб.: БХВ-Петербург, 2005. – 464 с.: ил.

5. Николаев Н.Н. Вычислительная математика (Линейная алгебра. Приближенное представление функций): конспект лекций/ Н.Н. Николаев. Чуваш. ун-т. – Чебоксары, 1996. – 64 с.: ил.

6. Николаев Н.Н. Вычислительные методы. Определенные интегралы, нелинейные и дифференциальные уравнения: конспект лекций/ Н.Н. Николаев. Чуваш. ун-т. – Чебоксары, 2010. 96 с.: ил.

7. Николаев Н.Н. Основы работы в системе MATHCAD: вычислительные методы: лаб. практикум/ Н.Н. Николаев. – Чебоксары: Изд-во Чуваш. ун-та, 2011. – 116 с.