Разработать программу для численного решения ОДУ методом Эйлера

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: C++
  • 88 страниц
  • 6 + 6 источников
  • Добавлена 04.09.2009
800 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
1. Постановка задачи и исходные данные
2. Математическое описание численного метода
2.1. Постановка задачи.
2.2 Численные методы решения задачи Коши ОДУ первого порядка
2.3 Метод Эйлера
2.4 Устойчивость численного решения
3. Программная реализация
4. Тестирование на контрольном примере
5. Результаты численного решения для заданного варианта
6. Оценка устойчивости решения
Выводы
Список литературы.
Приложение А. Листинг программы

Фрагмент для ознакомления

Результат решения, при помощи разработанной программы представлен на рис.4 .

Рисунок 4 – Результат решения контрольного примера

Анализ результатов позволяет сделать вывод о корректности результатов, численного решения и об адекватности разработанной программной модели. Перейдем к численному решению задачи согласно заданного варианта.

5. Результаты численного решения для заданного варианта

Используя разработанную программу, были получены численные решения для уравнения



Для α=5, при следующих начальных условиях: -




y(0)=e-1:

y(0)=e21:

y(0)=e-3:

y(0)=e-4:

Согласно заданному варианту выполнены все необходимые вычисления.


6. Оценка устойчивости решения

Оценим устойчивость полученных решений для уравнения

.

Приближенным решением будет уравнение вида:

,
тогда


Вычислительный процесс будет устойчив, если  |R(ah)|<1.
Построим зоны абсолютной устойчивости, результат представлен на рис. 6.

Рисунок 6. Зоны абсолютной устойчивости уравнения


Выводы


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

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

Численные методы (анализ, алгебра, обыкновенные дифференциальные уравнения), Н.С. Бахвалов. Главная редакция физико- математической литературы изд-ва «Наука», М., 1975г.
Методы, теории обыкновенных дифференциальных уравнений. Н.И. Гаврилов . Государственное издательство «Высшая школа» Москва-1962г.
Пак. В.В., Носенко Ю.Л.. Высшая математика: Учебник.- Д.: Сталкер, 1997г.
Демидович Б. П., Марон И. А. Основы вычислительной математике. – М., 1966
Загускин В. Л. – Справочник по численным методам решения уравнений. – М.: ФИЗМАТГИЗ, 1960. – 216 с.
Либерти, Джесс.
Освой самостоятельно С++ за 21 день, 4-е издание.:Пер с англ.-М.: Издательский дом «Вильямс», 2003.-832с.
Нортон П., Иао П. «Программирование на С++ в среде Windows» («Диалектика» Киев 2003г.)
Янг М. Microsoft Visual C++ - М.:ЭНТРОП, 2000.
Приложение А
Листинг программы

//---------------------------------------------------------------------------

#include
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
//-----------------------------------------------------
#include
using namespace std;
void func(double& Xi, double& Yi,double kx, double ky, double h);
int main()

{
double h; // Фиксированное приращение аргумента (x)
double Xi; // начальное значение интервала
double Yi; // начальное условие Y
double Xkon; // Конечное значение (x) интервала вычисления
double kxy; // Коэффициент при переменой x
double ky; // Коэффициент при переменой y
int n ; // Число шагов интегрирования
int m; // Вспомогательная переменная
cout<<"\t"<<"\t"<<"************************************************n";
cout<<"\t"<<"\t"<<"* * "<<"\n";
cout<<"\t"<<"\t"<<"* Reshenie difurov 1 poryadka methodom Elera *"<<"\n";
cout<<"\t"<<"\t"<<"*************************************************";


cout< cout<<"Vvedite nachaloe znachenie intervala [a,b]=";
cin>>Xi;
cout<<"Vvedite konechoe znachenie intervala [a,b]=";
cin>>Xkon;
cout<<"Vvedite chislo shagov=";
cin>>n;
h=(Xkon- Xi)/n;
cout< cout<<"Vvedite nachalnoe uslovie y=";
cin>>Yi;
cout<<"Vvedite koefitsient pri x i y=";
cin>>kxy;
cout<<"Vvedite koefitsient pri y=";
cin>>ky;
cout<<"|Interval|Chislo shagov|Shag prirasheniya|Nacalnoe Y|Uravnenie vida:| "<<"\n";
cout<<"|--------|-------------|-----------------|----------|---------------|"<<"\n";
cout<<"|"<<"["<
cout< cout<
for (int i=1;i<=n;i++)
{
func(Xi,Yi,kxy,ky,h);
cout<<"\n";
}
cin>> m;
return 0;
}
void func(double& Xi, double& Yi, double kxy, double ky, double h)
{
double f1,Yprom,a,Xprom;

f1=(kxy*Xi*Yi)+(ky*Yi);

Yi=Yi+f1*h;
cout<<"\t"<<"\t"<<"Interval x="< Показать больше

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

1.Численные методы (анализ, алгебра, обыкновенные дифференциальные уравнения), Н.С. Бахвалов. Главная редакция физико- математической литературы изд-ва «Наука», М., 1975г.
2.Методы, теории обыкновенных дифференциальных уравнений. Н.И. Гаврилов . Государственное издательство «Высшая школа» Москва-1962г.
3.Пак. В.В., Носенко Ю.Л.. Высшая математика: Учебник.- Д.: Сталкер, 1997г.
4.Демидович Б. П., Марон И. А. Основы вычислительной математике. – М., 1966
5. Загускин В. Л. – Справочник по численным методам решения уравнений. – М.: ФИЗМАТГИЗ, 1960. – 216 с.
6.Либерти, Джесс.
Освой самостоятельно С++ за 21 день, 4-е издание.:Пер с англ.-М.: Издательский дом «Вильямс», 2003.-832с.
7.Нортон П., Иао П. «Программирование на С++ в среде Windows» («Диалектика» Киев 2003г.)
8. Янг М. Microsoft Visual C++ - М.:ЭНТРОП, 2000.

Вопрос-ответ:

Какая задача решается в данной статье?

В данной статье решается задача разработки программы для численного решения обыкновенного дифференциального уравнения (ОДУ) методом Эйлера.

Какой численный метод используется для решения ОДУ?

Для решения ОДУ используется метод Эйлера.

Что такое метод Эйлера?

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

Какие результаты получены при численном решении задачи?

Результаты численного решения задачи представлены в статье.

Как оценивается устойчивость численного решения?

Устойчивость численного решения оценивается сравнением результатов с аналитическими решениями или другими точными методами.

Что такое ОДУ?

ОДУ - это обыкновенное дифференциальное уравнение, которое содержит только одну независимую переменную.

Какие исходные данные необходимы для разработки программы для численного решения ОДУ методом Эйлера?

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

Как работает метод Эйлера?

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

Что означает устойчивость численного решения?

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