Мегаобучалка Главная | О нас | Обратная связь


Использование численных методов решения дифференциальных уравнений для тактико-специальных задач



2019-07-03 190 Обсуждений (0)
Использование численных методов решения дифференциальных уравнений для тактико-специальных задач 0.00 из 5.00 0 оценок




 

Вариант №21.

 

Задание на выполнения второй части курсовой работы:

Дифференциальное уравнение:

Точное решение уравнения:

Начальные условия: x0 = 0 , y0 =0, xmax=2.

Метод решения: метод Эйлера-Коши, Δx = 0,01; 0,005; 0,001.

Метод Эйлера-Коши

Метод Эйлера-Коши (или усовершенствованный метод Эйлера) является методом второго порядка и заключается в следующем. Интегральная кривая на каждом шаге интегрирования заменяется прямой с тангенсом угла наклона, равным среднему арифметическому тангенсов углов наклона касательных к искомой функции в начале и в конце шага. Вычисления проводятся в следующем порядке:

1. Выбираем шаг интегрирования .

2. Полагаем номер шага .

3. Вычисляем , находим оценку для приращения функции на этом шаге методом Эйлера , , вычисляем среднее арифметическое тангенсов углов наклона  и окончательно получаем:

.

4. Если , то увеличиваем номер шага  на единицу и повторяем п.3. В противном случае переходим к выполнению п.5.

5. Оформляем полученный результат.

Достоинство метода – более высокая точность вычисления по сравнению с методом Эйлера. Недостаток – больший объем вычислений правых частей.

Таблица идентификаторов :

Обозначение Идентификатор Тип
s s int
i i int
x x float
xmax x_max float
x1 x1 float
Δx h[i] float
y y float
d d float
f(x) f(x) float
k k(x,y) float
K1 f1 float
K2 f2 float
K3 f3 float
K4 f4 float

Схема алгоритма :

 

 


6. Листинг программы:

 

#include<stdio.h>

#include<math.h>

int s,i;

double x, x1, x_max=2, y, d, q;

double h[3]={0.01,0.005,0.001};

double k(double x,double y )

{

return ((x)/(4+(pow(x,4))));

}

double e(double x)

{

return 0.25*atan(pow(x,2)/2);

}

double f1=k(x,y);

double yw=y+f1*h[i];

double r=x+h[i];

double fl=k(r,yw);

int main(void)

{

FILE*sev;

sev=fopen("E:result34.xls","w+");

for (i=0;i<=2;i++)

{

s=0; y=0;

fprintf(sev,"h(%i)=%lf\n",i,h[i]);

for(x=0;x<=x_max;x+=h[i])

{

s++;

x1=x+h[i];

y+=(f1+fl)*h[i]/2;

d=y-e(x1);// y- pribl. f(x)- tochnoe

printf(" step =%4.i x=%6.4lf \ty=%6.4lf yt=%6.4lf d=%10.8f\n",s,x1,y,e(x1),d);

 

fprintf(sev," \t step =\t%4.i\t x=\t%10.5lf\t y=\t%10.5lf\t yt=\t%10.5lf\t d=\t%10.5f\n",s,x1,y,e(x1),d);

}

}

fclose(sev);

return 0;

}

 

 

 

Вывод:

Интегрированная среда Visual С позволяет обрабатывать программы, записанные на языке С++ . Для программирования циклических алгоритмов были использованы операторы организации циклов с параметрами, решение использует форматируемый вывод и оператор присваивания, а также использовались операторы вызова функций. Чем больше шаг, тем точнее вычисления.

 



2019-07-03 190 Обсуждений (0)
Использование численных методов решения дифференциальных уравнений для тактико-специальных задач 0.00 из 5.00 0 оценок









Обсуждение в статье: Использование численных методов решения дифференциальных уравнений для тактико-специальных задач

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (190)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)