Курсовая работа: Решение дифференциальных уравнений по методу Эйлера
Название: Решение дифференциальных уравнений по методу Эйлера Раздел: Рефераты по математике Тип: курсовая работа Добавлен 20:43:28 26 декабря 2010 Похожие работы Просмотров: 1331 Комментариев: 21 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать |
Nk / y=y(x)
Мк Мк /
Yk+1
Yk
хк хк1/2 xk+h =xk1 X
Получаем точку Nk / . В этой точке строим следующую касательную:
Из точки Мк проводим прямую с угловым коэффициентом αк и определяем точку пересечения этой прямой с прямой xк1 . Получаем точку Мк / . В качестве ук+1 принимаем ординату точки Мк / . Тогда:
Эти формулы называются рекуррентными формулами метода Эйлера.
Сначала вычисляют вспомогательные значения искомой функции yк+1/2 в точках xк+1/2 , затем находят значение правой части уравнения (1) в средней точке
3. Блок-схема алгоритма
где A — начальное значение x, B — конечное значение x, F(x) — значение функции в точке xn , N — количество промежутков, st – выбор операции, C1,C2,C3 – константы для формул, nom — сохраняет номер используемой функции.
На рисунке представлена блок-схема процесса решения дифференциального уравнения методом Эйлера
Подсчитывая каждый раз новое значение уравнения F(x), получаем последовательность значений xn yn , n=1,2,…
По этим значениям строим график.
4. Описание программы
Программа весьма проста. В ней много предусмотрено моментов неправильного ввода данных, о которых программа предупреждает пользователя и сразу же просит повторно ввести данные.
С самого начала программа предоставляет пользователю меню выполняемых функций, которые выделяются при помощи стрелок ↑ и ↓ выбор клавишей Enter:
После запуска программы нужно выбрать Formyla -> Enter, эта опция позволит из предложенного списка формул выбрать одну, по которой компьютер будет производить расчет и строить график. Все предложенные формулы имеют номерацию; чтобы выбрать интересующий вас пример нажмите на цифру равную номеру примера, и сразу же появится новое окно, в котором сверху будет записан ваш пример. Также в окне будет этот же пример но с нулями на месте констант. Под примером будет высвечена большая буква С, это используется для ввода констант. Для этого вам нужно нажать номер константы, он появится, и после знака равно запишите чему она равна (вводятся целые и вещественные значения). По окончании набора нажать Enter. Операцию повторять пока не будут введены все числа. По окончании нажать Esc. После появится строчка «уточните границы изменения Х, от A= до B= » здесь нужно занести данные на каком промежутке абсциссы будет рассматриваться функция. Следующая строчка попросит ввести начальные данные y(A)=. Следующей строчкой будет вопрос: «сохранить данные в файле? Да/Нет» ответить на этот вопрос с помощью клавиш Д и Н (рус), после чего программа вернется в первоначальное меню. Если данные были сохранены (в папке с программой появляется файл form.txt), то в следующий раз чтобы не набирать снова выберите в меню опцию Formyla -> Open in fails и на экране появятся введенные данные с пометкой снизу, сообщая что данные были прочитаны из файла.
Следующая опция Reshenie. После нажатия в окне просят ввести N(целое число) – число промежутков, на которые разделится рассматриваемый участок (ось ОХ). После появится таблица рассчитанных данных (номер точки, значение абсциссы, значение ординаты). При нажатии любой клавиши произойдет переход в меню.
Graphic эта опция позволяет визуально видеть решение, а так же на этом графике прописываются все данные: начальная формула, шаг и промежуток построения графика, масштаб, данные об его изменении(клавишами +(увеличить) и -(уменьшить), а также возможность определить точное значение функции в любой точке.
Опция Exit применяется для выхода из программы.
Результатом выполнения курсового проекта является готовый программный продукт, позволяющий решать дифференциальные уравнения по методу Эйлера, демонстрирующий возможности численного решения поставленной задачи с заданной степенью точности.
Данная программа решает заданную пользователем дифференциальное уравнение за минимальный промежуток времени. При этом пользователю предоставляется возможность визуально оценить решение, рассматривая график полученного решения.
К достоинствам программы можно отнести также удобный пользовательский интерфейс, возможность ввода пользовательских дифференциальных уравнений, а также давольно высокая стабильность работы. Однако имеются и некоторые недостатки. К недостаткам программы можно отнести: критичность к вводимым пользователем урававней, отсутствие обработки исключительных событий. Это, естественно, ограничивает возможности программы.
Список использованной литературы
1. Д. Мак-Кракен, У. Дорн. Численные методы и программирование на фортране. –М.: Мир,1977.-389,396-408 с.
2. А.А. Самарский. Введение в численные методы. – М.:Наука,1987.-176 с.
3. Алгоритмы вычислительной математики: Лабораторный практикум по курсу «Программирование» для студентов 1 — 2-го курсов всех специальностей БГУИР/А.К. Синицын, А.А. Навроцкий.- Мн.: БГУИР, 2002.- 65-69 с.
4. ГОСТ 2.105-95. Общие требования к текстовым документам.
5. ГОСТ 7.32-91. Система стандартов по информации, библиотечному и издательскому делу. Отчет о НИР. Структура и правила оформления.
Приложение 1. Текст программы.
void formyl(int p)
if(p==1) printf(«\n 1. C1*y’ = C2*y + C3*x + C4*x*y»);
else if(p==2) printf(«\n 2. y’/(C1-100) = C2*y + C3*x + (C4+x)*y»);
else if(p==3) printf(«\n 3. pow(e,C1)*y’ = C2*y + C3*cos(x) + (C4+x+y)»);
else if(p==4) printf(«\n 4. C1*sin(x)*y’ = e*C2*y + C3*arcsin(x) + C4*y/x»);
else if(p==5) printf(«\n 5. C1*y’ = sin(C2)*y + tg(C3*x) + C4*ln(x)*y»);
else if(p==6) printf(«\n 6. C1*y’ = y*C2 + C3*sin(x) + C4*cos(x)*y»);
else if(p==7) printf(«\n 7. (C1+C2+C3+C4)*y’ = C2*y + (C3-x) + lg(C4*x)*y»);
else if(p==8) printf(«\n 8. y’/C1 = y/C2 + C3*sin(x) + C4*x*y»);
else if(p==9) printf(«\n 9. sin(C1)*y’ = C2*y + |C3|*x + x*y/C4»);
void formyl2(int p,double C1,double C2,double C3,double C4)
else if(p==2) printf(«y’/(%.2f-100)=%.2f*y+%.2f*x+(%.2f+x)*y»,C1,C2,C3,C4);else if(p==3) printf(«pow(e,%.2f)*y’=%.2f*y+%.2f*cos(x)+(%.2f+x+y)»,C1,C2,C3,C4);
else if(p==4) printf(«%.2f*sin(x)*y’=e*%.2f*y+%.2f*arcsin(x)+%.2f*y/x»,C1,C2,C3,C4);
else if(p==5) printf(«%.2f*y’=sin(%.2f)*y+tg(%.2f*x)+%.2f*ln(x)*y»,C1,C2,C3,C4);
else if(p==6) printf(«%.2f*y’=y*%.2f+%.2f*sin(x)+%.2f*cos(x)*y»,C1,C2,C3,C4);
else if(p==8) printf(«y’/%.2f=y/%.2f+%.2f*sin(x)+%.2f*x*y»,C1,C2,C3,C4);
else if(p==9) printf(«sin(%.2f)*y’=%.2f*y+|%.2f|*x+x*y/%.2f»,C1,C2,C3,C4);
double formyl3(int p,double h,double x,double y,double C1,double C2,double C3,double C4)
else if(p==2) Y=h*(C1-100)*(y*C2+C3*x+(C4+x)*y)+y;
else if(p==3) Y=h*(C2*y+C3*cos(x)+C4+x+y)/exp(C1)+y;
else if(p==4) Y=h*(exp(1)*C2*y+C3*asin(x)+C4*y/x)/(C1*sin(x))+y;
else if(p==5) Y=h*(sin(C2)*y+tan(C3*x)+C4*log10(x)*y)/C1+y;
else if(p==6) Y=h*(y*C2+C3*sin(x)+C4*cos(x)*y)/C1+y;
else if(p==7) Y=h*(C2*y+(C3-x)+log10(C4*x)*y)/(C1+C2+C3+C4)+y;
else if(p==8) Y=h*(y/C2+C3*sin(x)+C4*x*y)*C1+y;
else if(p==9) Y=h*(C2*y+abs(C3)*x+x*y/C4)/sin(C1)+y;
int vv=0,vv1=0; // руководит операциями
int N=0,W; // кол промежутков
int i,j,k; // используются во всех «for»
int nom; // номер примера
int st=4,vst=0; // строчка в меню
double C1,C2,C3,C4; // константы
double M; // масштаб
double xtoch,ytoch; // считает y(x) по графику
double A=0,B=0,ii,jj,kk; // пределы интегрирования
double x[102],y[102]; // главные переменные x,y
int g_driver=9,g_mode=2, g_error;
printf(«\n error=%d, reason=%s\n», g_error, grapherrormsg(g_error));
Курсовая работа: Решение дифференциальных уравнений по методу Эйлера
2. Математическое объяснение метода
2.1 Метод Эйлера
2.2 Исправленный метод Эйлера
2.3 Модифицированный метод Эйлера
3. Блок-схема алгоритма программы
4. Описание программы
Список использованной литературы
Приложение 1 (Текст программы)
Приложение 2 (Результаты работы программы)
Уравнение, содержащие производную функции одной переменной, возникают во многих областях прикладной математики. Вообще говоря, любая физическая ситуация, где рассматривается степень изменения одной переменной по отношению к другой переменной, описывается дифференциальным уравнением, а такие ситуации встречаются довольно часто.
Решение обыкновенных дифференциальных уравнений (нелинейных) первого порядка с начальными данными (задача Коши) – классическая область применения численных методов. Имеется много разностных методов, часть из которых возникла в домашинную эпоху и оказалось пригодным для современных ЭВМ.
В этой программе использовался метод Эйлера, один из самых старых и широко известных методов численного интегрирования дифференциальных уравнений. Этот метод имеет довольно большую ошибку; кроме того, он очень часто оказывается неустойчивым – малая начальная ошибка быстро увеличивается с ростом Х. Поэтому чаще используют более точные методы, такие как: исправленный метод Эйлера и модифицированный метод Эйлера. Нужно, однако, заметить, что метод Эйлера является методом Рунге – Кутта первого порядка.
2. Математическое объяснение метода
2.1 Метод Эйлера
Решить дифференциальное уравнение у / =f(x,y) численным методом — это значит для заданной последовательности аргументов х0 , х1 …, хn и числа у0 , не определяя функцию у=F(x), найти такие значения у1 , у2 ,…, уn , что уi =F(xi )(i=1,2,…, n) и F(x0 )=y0 .
Таким образом, численные методы позволяют вместо нахождения функции
У=F(x) получить таблицу значений этой функции для заданной последовательности аргументов. Величина h=xk -xk-1 называется шагом интегрирования.
Метод Эйлера относиться к численным методам, дающим решение в виде таблицы приближенных значений искомой функции у(х). Он является сравнительно грубым и применяется в основном для ориентировочных расчетов. Однако идеи, положенные в основу метода Эйлера, являются исходными для ряда других методов.
Рассмотрим дифференциальное уравнение первого порядка
с начальным условием
Требуется найти решение уравнения (1) на отрезке [а,b].
Разобьем отрезок [a, b] на n равных частей и получим последовательность х0 , х1 , х2 ,…, хn , где xi =x0 +ih (i=0,1,…, n), а h=(b-a)/n-шаг интегрирования.
В методе Эйлера приближенные значения у(хi )»yi вычисляются последовательно по формулам уi +hf(xi , yi ) (i=0,1,2…).
При этом искомая интегральная кривая у=у(х), проходящая через точку М0 (х0 , у0 ), заменяется ломаной М0 М1 М2 … с вершинами Мi (xi , yi ) (i=0,1,2,…); каждое звено Мi Mi+1 этой ломаной, называемой ломаной Эйлера, имеет направление, совпадающее с направлением той интегральной кривой уравнения (1), которая проходит через точку Мi , смотри рисунок 1.
Интегрирование уравнений Эйлера.
Интегрирование уравнений Эйлера.
Интегрирование уравнений Эйлера. Вектор Γ обладает потенциалом. Это общая форма Интеграла гидростатического уравнения, когда существует потенциал в объемной силе. Рассмотрим частный случай объемной силы. Внешняя объемная сила-это гравитация. направьте ось z вверх в декартовой системе координат. С помощью (2.16) легко установить возможность гравитации (2.19) Где§ ускорение свободного падения,§= 9,81 м / с2、 С GX = 0,ГУ = 0,1 г = Назначить (2.19) на (2.18): п%г—= СОП $ Е П когда Y представляет удельный вес (y =p§)、 2 + = SOP51 или 2 + = SOP5G. (2.20 am)) РЕ У Это закон распределения гидростатического давления. p0 обозначает давление свободной поверхности, или поверхностное давление, а P = p0 = найти форму свободной поверхности из условия const. 20 = SOP51-Р0 / г. (2.21) если b-расстояние до свободной поверхности (глубина точки), А начало координат находится на свободной поверхности, то при b = −2 (рис. 2.3) давление в точке C равно ПК = Р0 + y11s в том = по +(Фэ) с-(2-22) Где pb = y 1t-весовое давление.
Давление из-за веса жидкости. Обычно в практике гражданского строительства абсолютное давление pL (оно обозначалось как p) не используется, а представляет собой отклонение от атмосферного давления pa. Людмила Фирмаль
- Избыточное давление pn-это избыточное давление в точке выше атмосферного давления Р » = ра-ра (2.23) В условиях па-па недостаток давления в атмосферной точке называется вакуумом РВАК «ра-ра» (2-24) Остальная жидкость находится во вращающемся сосуде. Если сосуд вращается вокруг вертикальной оси r с угловой скоростью O, то через некоторое время жидкость вращается вместе с сосудом как 1 твердое тело. Жидкость неподвижна относительно container. To используйте гидростатическое уравнение (2.18), жидкость должна быть неподвижной относительно координаты system. It необходимо принять систему координат, которая вращается со скоростью.
- Но такая система не является инерционной; при движении к ней необходимо ввести соответствующую инерционную силу как внешнюю объемную силу. Центробежная сила действует на основные частицы жидкости, масса которых составляет 5 т(рис. 2.4 8 Пц6 = br2O2 г、 (2.25 )) Где r-радиус-вектор, определяющий положение элементарных частиц относительно оси вращения. R = XI + y) или r =(x, y); x, y-координаты частиц. Очевидно, что 8 RC смотрит в том же направлении. Найдите проекцию 8rtsb на координатных осях. (3РЦБ)х=8ш02х,(бРц6)у=8ш02у. (2.26) Плотность распределения массы центробежной силы (то есть силы на единицу массы)、 8ш=°2Г (Г» 61 =°2х>Н-°2У-2’27) При решении уравнения (2.18) необходимо ввести центробежную силу плотности распределения Hzb в качестве дополнительной внешней силы. Но, как указано, если в объемной силе есть потенциал, то выполняется интеграл по формуле (2.13). Непосредственно интегрируя выражения для (Hzb) x и (^Cb) y, вы можете легко найти возможные функции для Hz6. * ЦБ8 г Центральный банк = О2 Х2 + У2 (2.28) ’ІБ 2′.
В дополнение к центробежной силе, сила тяжести также действует на жидкость. Людмила Фирмаль
- Возможно, что, как и раньше,= Да. Тридцать три Потенциал валовых объемных сил, действующих на жидкость во вращающейся системе координат、 2/2 \ с = У8 + ui6 = г + О2 2Y_(2 29) Подставляя (2 29) (2 18), получаем формулу, определяющую давление в любой точке вращающегося объема жидкости. (2 30) Как и в предыдущем случае, координаты свободной поверхности представлены Р0.(2 30) найти уравнение свободной поверхности, подставив p = p0.Получим уравнение вращающегося параболоида. § 20+ Р2 х г = SOP51 + 2р Если поместить начало координат в вершину этого параболоида (рис. 2-5), то получим уравнение свободной поверхности в виде: 20 = Р2 ’2 + У2′ 2 5 осевая секция жидкости вращающейся с контейнером 2, 231.) П = для p0-2 + pO2 Х2 + У2 (232)) Как видите, форма параболоида не зависит от плотности жидкости. Согласно (232), в каждом вертикальном направлении давление распределяется по закону гидростатического давления(2 20).
Смотрите также:
Возможно эти страницы вам будут полезны:
Образовательный сайт для студентов и школьников
Копирование материалов сайта возможно только с указанием активной ссылки «www.lfirmal.com» в качестве источника.
© Фирмаль Людмила Анатольевна — официальный сайт преподавателя математического факультета Дальневосточного государственного физико-технического института
http://cwetochki.ru/ref-kursovaia-rabota-reshenie-differentsialnykh-uravnenii-po-metodu-eilera.html
http://lfirmal.com/integrirovanie-uravnenij-ehjlera/