Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Обыкновенные дифференциальные уравнения. Численное решение задач с начальными условиями Коши.






Постановка задачи: Дано дифференциальное уравнение второго порядка

y''+B y'+K y =A, где A, B, K - данные параметры д.у., [a, b] - интервал интегрирования д.у., h=(b-a)/n - шаг интегрирования д.у., n - выбранное число разбиений [a, b] на частичные интервалы с шагом hx, y(a) = y0, y'(a) = y'0 - начальные условия для д.у.. Требуется определить на промежутке [a, b] с шагом hx приближенные значения функций y(x), y'(x), удовлетворяющие д.у. и начальным условиям в табличной форме.

Метод Эйлера
Ввести обозначения y'=z z'+B z+K y=A
Модифицированный метод Эйлера-1 модификация
Ввести обозначения y'=z z'+B z+K y=A
Модифицированный метод Эйлера-2 модификация
Ввести обозначения y'=z z'+B z+K y=A
Метод Рунге-Кутта
Ввести обозначения y'=z z'+B z+K y=A  
Метод Эйлера Программа на языке CИ #include < iostream.h> #include < iomanip.h> #include < math.h> double F(double x, double y, double z) {return (2*x-3-4*z-4*y); }   int main() { double x0, y0, z0, x, y, z, xp, h, Hp, a, b; int kp, n;   cout.precision(5); cout.setf(ios:: left);   cout< < " VVedite n.y. x0, y0, z0" < < endl; cin> > x0> > y0> > z0;   cout< < " vvedite a i b" < < endl; cin> > a> > b;   cout< < " vvedite chislo razbien" < < endl; cin> > n;   cout< < " Shag pechati" < < endl; cin> > kp;   cout< < " x" < < setw(10)< < " y" < < setw(10)< < " z" < < endl; cout< < " _______________________________" < < endl; cout< < x0< < setw(10)< < y0< < setw(10)< < z0< < endl;   h=(b-a)/n; Hp=kp*h;     x=x0; xp=x0; while(x< b) { xp=xp+Hp; while(x< xp) {x=x0+h; y=y0+h; z=z0+F(x0, y0, z0)*h; x0=x; y0=y; z0=z; } coutБ< x< < setw(10)< < y< < setw(10)< < z< < endl; } return 0; }
Модифицированный метод Эйлера Программа на языке CИ   #include < iostream.h> #include < iomanip.h> #include < math.h> double F(double x, double y, double z) {return (2*x-3-4*z-4*y); }   int main() { double x0, y0, z0, x1, y1, z1, x, y, z, xp, h, Hp, a, b; int kp, n;   cout.precision(5); cout.setf(ios:: left);   cout< < " VVedite n.y. x0, y0, z0" < < endl; cin> > x0> > y0> > z0;   cout< < " vvedite a i b" < < endl; cin> > a> > b;   cout< < " vvedite chislo razbien" < < endl; cin> > n;   cout< < " Shag pechati" < < endl; cin> > kp; cout< < " x" < < setw(5)< < " y" < < setw(5)< < " z" < < endl; cout< < " _____________________________" < < endl; cout< < x0< < setw(5)< < y0< < setw(5)< < z0< < endl;   h=(b-a)/n; Hp=kp*h;     x=x0; xp=x0; while(x< b) { xp=xp+Hp; while(x< xp) {x1=x0+h/2; y1=y0+(h/2)*z0; z1=z0+(h/2)*F(x0, y0, z0); x=x1+h/2; y=y0+h*z1; z=z0+h*F(x1, y1, z1);   x0=x; y0=y; z0=z; } cout< < x< < setw(5)< < y< < setw(5)< < z< < endl; } return 0; }
Программа на языке СИ #include < iostream.h> #include < iomanip.h> #include < math.h> double F(double x, double y, double z) {return (2*x-3-4*z-4*y); }   int main() { double x0, y0, z0, x1, y1, z1, x, y, z, xp, h, Hp, a, b; int kp, n;   cout.precision(5); cout.setf(ios:: left);   cout< < " VVedite x0, y0, z0" < < endl; cin> > x0> > y0> > z0;   cout< < " vvedite a i b" < < endl; cin> > a> > b;   cout< < " vvedite chislo razbien" < < endl; cin> > n;   cout< < " Shag pechati" < < endl; cin> > kp;   cout< < " x" < < setw(10)< < " y" < < setw(10)< < " z" < < endl; cout< < " _________________________________" < < endl; cout< < x0< < setw(10)< < y0< < setw(10)< < z0< < endl;   h=(b-a)/n; Hp=kp*h;     x=x0; xp=x0; while(x< b) { xp=xp+Hp; while(x< xp) {x1=x0+h; y1=y0+h*z0; z1=z0+h*F(x0, y0, z0); x=x1; y=y0+h*(z0+z1)/2; z=z0+h*(F(x0, y0, z0)+F(x1, y1, z1))/2;   x0=x; y0=y; z0=z; } cout< < x< < setw(10)< < y< < setw(10)< < z< < endl; } return 0; }
     

Содержание

 

Решение нелинейного уравнения с одной неизвестной. Методы отделения и уточнения корней. 3

Шаговый метод. 4

Метод половинного деления. 5

Метод Ньютона. 6

Метод простой итерации. 7

Решение систем линейных уравнений. Прямые и итерационные методы. 8

Метод Гаусса. 8

Метод простой итерации. 10

Метод Зейделя. 10

Аппроксимация и Интерполяции. 12

Метод наименьших квадратов. 12

Метод неопределённых коэффициентов. 14

Вычисление определённого интеграла. 17

Метод центральных прямоугольников. 18

Метод трапеций. 19

Метод Симпсона. 20

Обыкновенные дифференциальные уравнения. Численное решение задач с начальными условиями Коши. 21

Метод Эйлера. 22

Модифицированный метод Эйлера. 23

Модифицированный метод Эйлера. 235

Литература

1.Павловская Т.А. C/C++Программирование на языке высокого уровня: Учебник для вузов/ Павловская Т.А СПб. Изд.-во «Питер», 2007.

2. Павловская Т.А. C/C++Структурное программирование: практикум./: Павловская Т.А, Ю.В.Щупак СПб.: Изд.-во «Питер», 2007.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.