Численные методы интегрирования дифференциальных уравнений первого порядка

Исследования различных методов интегрирования дифференциальных уравнений по точности вычисления. Структурная схема алгоритма и листинг программы Matlab. Реализация методов Эйлера, Эйлера-Коши и Рунге-Кутта 3 порядка. Экстраполяционный метод Адамса.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 28.04.2014
Размер файла 171,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Калужский филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Московский государственный технический университет имени Н.Э. Баумана»

(КФ МГТУ им. Н.Э. Баумана)

ЛАБОРАТОРНАЯ РАБОТА №1

ДИСЦИПЛИНА: "Вычислительные методы теории управления"

ТЕМА: "Численные методы интегрирования дифференциальных уравнений первого порядка"

Выполнил:

Аксенов Н.В.

Калуга, 2014 г.

Цель работы: Изучение численных методов интегрирования дифференциальных уравнений первого порядка. В ходе лабораторной работы выполняются исследования различных методов интегрирования дифференциальных уравнений по точности вычисления и быстродействию построенных на их основе алгоритмов.

Вариант 1:

Рассмотрим решение данного уравнения на промежутке [2,10] с нулевыми начальными условиями.

Решим данное уравнение с помощью встроенного решателя ode45:

fun_1(1-2*t*x)/(t*(t-1));

[t,y]=ode45(@fun_1,[2 10],[0]); plot(t,y)

Рисунок 1. График решения, полученного с помощью встроенного решателя.

дифференциальный уравнение алгоритм программа

Рисунок 2. График решений, полученных численными методами с шагом 0.1.

Рисунок 3. График решений, полученных численными методами с шагом 0.01.

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

Рисунок 4. Структурная схема алгоритма метода Эйлера.

Листинг программы MATLAB реализации метода Эйлера:

function [t,x] = eilera_difur(funkc,interval,inital,h)

funkc=inline(funkc);

i=1;

x(1)=inital;

t(1)=interval(1);

while t(i)<=interval(2)

x(i+1)=x(i)+h*funkc(t(i),x(i));

t(i+1)=t(i)+h;

i=i+1;

end

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

Рисунок 5. Структурная схема алгоритма метода Эйлера-Коши.

Листинг программы MATLAB реализации метода Эйлера-Коши:

function [t,x] = eilera_koshi_difur(funkc,interval,inital,h)

funkc=inline(funkc);

i=1;

x(1)=inital;

t(1)=interval(1);

while t(i)<=interval(2)

x(i+1)=x(i)+h*funkc(t(i),x(i));

t(i+1)=t(i)+h;

x(i+1)=x(i)+h*(funkc(t(i),x(i))+funkc(t(i+1),x(i+1)))/2;

i=i+1;

end

3. Метод Рунге-Кутта 3 и 4 порядков.

Рисунок 6. Структурные схемы алгоритмов метода Рунге-Кутта 3 и 4 порядков.

Листинг программы MATLAB реализации метода Рунге-Кутта 3 порядка:

function [t,x] = Rungekutta3(funkc,interval,inital,h)

funkc=inline(funkc);

i=1;

x(1)=inital;

t(1)=interval(1);

while t(i)<=interval(2)

K1=h*funkc(t(i),x(i));

K2=h*funkc(t(i)+h/2,x(i)+K1/2);

K3=h*funkc(t(i)+h,x(i)-K1+2*K2);

x(i+1)=x(i)+(K1+4*K2+K3)/6;

t(i+1)=t(i)+h;

i=i+1;

end

Листинг программы MATLAB реализации метода Рунге-Кутта 4 порядка:

function [t,x] = Rungekutta4(funkc,interval,inital,h)

funkc=inline(funkc);

i=1;

x(1)=inital;

t(1)=interval(1);

while t(i)<=interval(2)

K1=h*funkc(t(i),x(i));

K2=h*funkc(t(i)+h/2,x(i)+K1/2);

K3=h*funkc(t(i)+h/2,x(i)+K2/2);

K4=h*funkc(t(i)+h,x(i)+K3);

x(i+1)=x(i)+(K1+2*K2+2*K3+K4)/6;

t(i+1)=t(i)+h;

i=i+1;

end

4. Экстраполяционный метод Адамса 3 порядка.

Рисунок 7. Структурная схема алгоритма метода интерполяционного метода Адамса 4 порядка.

Листинг программы MATLAB реализации интерполяционного метода Адамса 4 порядка.

function [t,x] = Adamsa4(funkc,interval,inital,h)

t(1)=interval(1);

t(2)=t(1)+h;

t(3)=t(2)+h;

t(4)=t(3)+h;

[bt,bx]= eilera_koshi_difur(funkc,[interval(1) interval(1)+3*h],inital,h/10);

x(1)=inital;

x(2)=bx(11);

x(3)=bx(21);

x(4)=bx(31);

funkc=inline(funkc);

i=4;

while t(i)<interval(2)

x(i+1)=x(i)+h*(55*funkc(t(i),x(i))-59*funkc(t(i-1),x(i-1))+37*funkc(t(i-2),x(i-2))-9*funkc(t(i-3),x(i-3)))/24;

t(i+1)=t(i)+h;

i=i+1;

end

5. Экстраполяционный метод Адамса 4 порядка.

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

function [t,x] = Adamsa3_interpol(funkc,interval,inital,h)

t(1)=interval(1);

t(2)=t(1)+h;

t(3)=t(2)+h;

[bt,bx]= eilera_koshi_difur(funkc,[interval(1) interval(1)+2*h],inital,h/10);

x(1)=inital;

x(2)=bx(11);

x(3)=bx(21);

funkc=inline(funkc);

i=3;

while t(i)<interval(2)

t(i+1)=t(i)+h;

x(i+1)=(x(i)+19*h*funkc(t(i),x(i))/24-5*h*funkc(t(i-1),x(i-1))/24+h*funkc(t(i-2),x(i-2))/24+3*h/(8*t(i+1)*(t(i+1)-1)))/(1+3*h/(4*(t(i+1)-1)));

i=i+1;

end

Размещено на Allbest.ru


Подобные документы

  • Изучение численных методов решения нелинейных уравнений. Построение годографа АФЧХ, графиков АЧХ и ФЧХ с указанием частот. Практическое изучение численных методов интегрирования дифференциальных уравнений высокого порядка, метод Рунге-Кутта 5-го порядка.

    курсовая работа [398,3 K], добавлен 16.06.2009

  • Обзор методов решения в Excel. Рекурентные формулы метода Эйлера. Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка. Метод Эйлера с шагом h/2. Решение дифференциальных уравнений с помощью Mathcad. Модифицированный метод Эйлера.

    курсовая работа [580,1 K], добавлен 18.01.2011

  • Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.

    курсовая работа [532,9 K], добавлен 14.01.2014

  • Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта 4-го порядка. Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений. Результат работы программы.

    курсовая работа [226,6 K], добавлен 05.04.2013

  • Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++.

    курсовая работа [163,4 K], добавлен 16.05.2016

  • Принцип и значение метода Эйлера для расчета дифференциальных уравнений. Анализ его геометрического смысла. Улучшение метода за счет аппроксимации производной. Разработка блок-схем и программы на языке Turbo Pascal для проверки методов интегрирования.

    курсовая работа [385,7 K], добавлен 15.06.2013

  • Решение дифференциальных уравнений первого порядка. Варианты методов Рунге-Кутта различных порядков. Основные методы численного решения задачи Коши. Повышение точности вычислений и итерационный метод уточнения. Дискретная числовая последовательность.

    лабораторная работа [33,3 K], добавлен 14.05.2012

  • Численные решения задач методом Коши, Эйлера, Эйлера (модифицированный метод), Рунге Кутта. Алгоритм, форма подпрограммы и листинг программы. Решение задачи в MathCad. Подпрограмма общего решения, поиск максимальных значений. Геометрический смысл задачи.

    курсовая работа [691,4 K], добавлен 17.05.2011

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

    курсовая работа [76,7 K], добавлен 18.11.2009

  • Математическая модель задачи для исследования характера движения тела. Решение задачи Коши для системы дифференциальных уравнений первого и второго порядка. Использование метода Эйлера. Схема алгоритма, таблица идентификаторов, программа на языке Pascal.

    курсовая работа [137,9 K], добавлен 07.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.