Laboratornaya_5
.docxНижегородский государственный технический университет им. Р.Е. Алексеева
Кафедра «Прикладная Математика»
Отчет по лабораторной работе №5
Тема: Численные методы решения обыкновенных
дифференциальных уравнений.
5 вариант.
Выполнила: студентка
Группы С11-ЛА-1
Кокушева Ю.В.
Проверил преподаватель:
Осипенко Н.Н.
Нижний Новгород 2012г.
Оглавление
1.Постановка задачи……………………………………………………….……3
2. MathCAD……………………………………………………………………….3
-
Простой метод Эйлера………………………………………………..3
-
Метод Эйлера с усреднением (1 модификация)……………………4
-
Метод Эйлера с центрированием (2 модификация)……………….5
-
Метод Эйлера по правому краю (3 модификация)…………………6
-
Метод Рунге-Кутта……………………………………………………7
-
Решение с помощью функции Odesolve()…………………………..8
-
Совмещение всех полученных графиков……………………………8
3. Microsoft Visual C++ . Простой метод Эйлера……………………………..9
4.Ручной счет…………………………………………………………………....10
-
Простой метод Эйлера………………………………………………10
-
Метод Эйлера с усреднением (1 модификация)…………………..11
-
Метод Эйлера с центрированием (2 модификация)……………...12
-
Метод Эйлера по правому краю (3 модификация)………………..13
-
Метод Рунге-Кутта…………………………………………………..14
1.Постановка задачи
Найти неизвестные функции y(x) и y`(x) от уравнения y``+4y`+4y=0 на интервале [0;1] при начальных условиях y(0)=3, y`(0)=1.5, методами:
-
Простой метод Эйлера
-
Метод Эйлера с усреднением (1 модификация)
-
Метод Эйлера с центрированием (2 модификация)
-
Метод Эйлера по правому краю (3 модификация)
-
Метод Рунге-Кутта
Проведем расчеты в программах MathCAD, Microsoft Visual C++ и выполним ручной счет.
Предварительные расчеты
y``+4y`+4x=0 y``=- 4y`- 4y
x[a;b]
x=x0 =a=0
y0=3, y`=z
z0=1.5
z` =-4z-4y
2. MathCAD
Р
е а л и з а ц и я м е т о д о в
р
е ш е н и я о б ы к н о в е н н ы х д и ф ф
е р е н ц и а л ь н ы х у р а в н е н и й в
MathCad
з
а д а н и е н а ч а л ь н ы х у с л о в и й
з
а д а н и е ч и с л а ш а г о в
М
е т о д Э й л е р а п р о с т о й .
М
е т о д Э й л е р а с у с р е д н е н и е м
М
е т о д Э й л е р а с ц е н т р и р о в а н
и е м
М
е т о д Э й л е р а п о п р а в о м у к р а
ю
М
е н т о д Р у н г е -К у т т а
Р
е ш е н и е с п о м о щ ь ю ф у н к ц и и
Odesolve()
С
о в м е щ е н и е в с е х п о л у ч е н н ы
х г р а ф и к о в
3. Microsoft Visual C++.
Простой метод Эйлера
#include "stdafx.h"
#include "math.h"
#include "iostream"
using namespace std;
void main()
{
double x[5],y[5],z[5],h,b=1;
int i,n=5,a=0;
x[0]=a;
y[0]=3;
z[0]=1.5;
printf("x0=%2.2f\ty0=%2.2f\tz0=%2.2f\n",x[0],y[0],z[0]);
h=(b-a)/n;
cout<<"\nh="<<h<<endl;
printf("\ni\t x\t y\t z\n");
for(i=0;i<=n;i++)
{
x[i+1]=x[i]+h;
y[i+1]=y[i]+h*z[i];
z[i+1]=z[i]+h*(-4*z[i]-4*y[i]);
printf("%1d\t%5.2f\t%5.2f\t%5.2f\n",i,x[i],y[i],z[i]);
}
char st;
cin>>st;
}