Метод Эйлера

Общая характеристика метода Эйлера, применяемого для решения линейных систем алгебраических уравнений. Анализ влияния шага на ошибки интегрирования и число итераций. Составление программы на языке MatLAB и ее тестирование при различных исходных данных.

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

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

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

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

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

Федеральное агентство по образованию

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

Курсовой проект

по теме: «Метод Эйлера»

Ханты-Мансийск 2013

Содержание

Введение

1. Математическая постановка задачи

2. Описание программного обеспечения

2.1 Общие сведения

2.2 Функциональное назначение

2.3 Логическая структура

2.4 Входные данные

2.5 Вызов и загрузка

2.6 Выходные данные

3. Описание тестовых задач

3.1 Для обычных линейных ОДУ

3.2 Для жестких ОДУ

4. Анализ результатов. Выводы

Заключение

Список использованных источников

Приложения

Введение

метод эйлера линейная система

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

В данной работе требуется проанализировать влияние шага на ошибки интегрирования и число итераций, а также сравнить решение обычных и жестких систем. Для этого необходимо составить программу на языке MatLAB, реализующую метод, и протестировать ее при различных исходных данных.

1. Математическая постановка задачи

Пусть задана система ОДУ:

Численное интегрирование этой системы заключается в определении значений x(t) на интервале времени от 0 до Т при заданных начальных условиях х(0). При этом интервал времени от 0 до Т разбивается на шаги с интервалом tm=hm=(tm+1-tm), здесь m - номер шага, m=. Очередное значение хm+1 вычисляется на основании предыдущих значений х:

xm+1=xm+hmF(xm,tm)

Для дальнейшего решения системы ОДУ методом Эйлера линеаризируем ее в точке xm,tm:

Матрица , при этом суть константы, вычисленные в точке линеаризации:

=

Входной сигнал при линеаризации является известной функцией времени и при фиксированном tm на шаге hm может считаться константой. Элементы матрицы А меняются лишь с изменением точки линеаризации.

Характеристики метода:

1. Точность. Формула xm+1=xm+hmF(xm,tm) аппроксимирует ряд Тейлора для функции x(tm - 1) до линейного по h члена включительно. Поэтому еami пропорциональна hm2. Можно сказать, что существует такое значение в интервале, при котором

е

2. Устойчивость. Для анализа устойчивость матрицу А приводят к диагональному виду: A = PлP-1. Тогда система примет вид: x' = PлP-1x. Нулевое состояние равновесия системы асимптотически устойчиво при <0, значит и метод Эйлера для этого уравнения, имеющий вид, также асимптотически устойчив. При >0 нулевое состояние равновесия системы неустойчиво. Следовательно, система также неустойчива.

3. Шаг интегрирования. При соблюдении абсолютной или относительной устойчивости:

hmin,

В любых случаях шаг нужно корректировать по условиям точности.

2. Описание программного обеспечения

В этом разделе будут рассмотрены параметры программы и ее логическая структура.

2.1 Общие сведения

Программа написана на языке MatLAB в среде MatLAB 6.5. Для работы программы необходимо наличие операционной системы Windows 95 и выше, а также наличие среды MatLAB 6.5 (на более поздних версиях среды программа не тестировалась). Программа включает в себя 4 файлов: Start.m - головной файл, необходимый для запуска программы на выполнение и построения графика функций и ошибок, Fun.m - содержит ОДУ для вычисления, FunT - функция вычисления точного решения системы, RK1.m - содержит решение системы методом Эйлера.

2.2 Функциональное назначение

Программа предназначена для решения систем линейных ОДУ методом Эйлера. Вывод решения производится по графикам. На них отображены зависимости решения от времени интегрирования.

2.3 Логическая структура

Работу программы можно представить с помощью схемы, изображенной на рис.1:

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

Рис. 1. Блок-схема программы

Рассмотрим каждый из этапов работы программы подробнее.

Ввод исходных данных осуществляется путем внесения изменений в текст программы.

Далее программа вызывает RK1.m, где происходит решение системы методом Эйлера, следуя алгоритму:

1. задание исходных данных, инициализация переменных

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

3. формирование t_out, y_out, в которые заносятся соответственно время интегрирования и значения х.

Далее происходит вызов FunT, где вычисляется точное решение системы.

После чего происходит построение графиков.

2.4 Входные данные

В качестве входных данных выступают:

a) линейное ОДУ

b) шаг интегрирования

c) допустимая ошибка аппроксимации

d) начальные значения х

2.5 Вызов и загрузка

Вызов программы происходит через среду MatLAB. Для этого надо указать директорию доступа к файлам программы и ввести в командную строку имя головного файла - start.m. Программа занимает 1.5 Кб места жесткого диска (начальное время интегрирования). При вычислении результата и построении графиков используется незначительный объем памяти.

2.6 Выходные данные

Выходная информация представляется в графическом виде. Значения всех переменных можно просмотреть через среду MatLAB.

3. Описание тестовых задач

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

3.2 Для обычных линейных ОДУ

Программа тестировалась на системе:

Величина шага

Ошибка аппроксимации

число итераций

0,1

0,0099

256

0,01

0,01

1932

0,001

0,0073

358

0,0001

0,01

2569

0,00001

0,0015

1

При решении этой же системы c переменным шагом число итераций возросло до 2530, при этом ошибка аппроксимации составила 0,0099.

3.3 Для жестких ОДУ

Программа тестировалась на системе:

Число итераций при решении системы составило 2016, ошибка аппроксимации равна 0,01.

Величина шага

Ошибка аппроксимации

число итераций

0,1

0,0091

157

0,01

0,01

1169

0,001

0,01

7129

0,0001

0,01

25258

0,00001

0,0012

1

В Приложении 2 содержаться графики итераций для шага 0,01 и 0,001 для обычных систем и для шага 0,01 - для жестких.

4. Анализ результатов. Выводы

Проведя анализ результатов тестирования, можно сказать, что наиболее эффективна программа при шаге интегрирования равном 0,00001, так как именно тогда ошибка аппроксимации минимальна и число итераций равно 1.

Видно, что чем меньше ошибка аппроксимации, тем меньше итераций требуется для решения.

При шаге 0,00001 на графики были в виде прямых, что можно списать на округление значений при вычислении.

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

Проанализировав результаты решения жесткой системы, можно сказать, что плохая обусловленность матрицы делает практически непоказательным графическое решение, так как по нему очень сложно судить о поведении обеих переменных, в силу того что на фоне одной из них (х2) не заметна другая.

То есть:

· величина шага влияет на число итераций

· точность решения зависит от величины шага

· решение систем с переменным или постоянным шагом, равным максимальному шагу способа с переменным шагом, одинаково

· жесткость системы затрудняет анализ результата решения.

Заключение

В данной работе был исследован явный метод Эйлера для решения обычных и жестких систем ОДУ. Было проанализировано влияние величины шага интегрирования на ошибку аппроксимации, и ее влиянии на число итераций. Для этого была написана программа (Приложение 1), реализующая метод, и протестирована при различных исходных данных.

Список использованных источников

1 Ортега Дж., Рейнболдт В. Итерационные методы решения нелинейных систем уравнений со многими неизвестными.-М.: Мир, 1975.- 558 стр.

2 Самарский А.А., Гулин А.В. Численные методы: Учеб. Пособие для вузов.- М.: Наука,1989.- 432 стр.

3 Сарычева О.М. Численные методы в экономике / О.М. Сарычева.- Новосибирск, 1995.- 67 стр.

Приложения

Приложение 1

Текст головной программы

h=0.01; % шаг интегрирования

t0=0; % начальное время интегрирования

x0=[0;0];

Edop=0.01;

[t_out,y_out]=RK1(t0,x0,h,Edop); % вызов RK1

ytoch=FunT(t_out); % точное решение

% построение графика решения методом Рунге-Кутта 1

plot(t_out,y_out);

grid;

title('Solution for x1 and x2 by method Runge-Kutta 1');

ylabel('x');

xlabel('t');

Текст программы для решения ОДУ методом Эйлера с постоянным шагом:

function [t_out,y_out]=RungeKutta1(t0,x0,h,Edop);

% функция решения методом Рунге-Кутта 1

t=t0;

x=x0;

t_out=t;

y_out=x0;

E=[1;1];

while E>Edop

K1=Fun(t,x);

dx=h*K1;

x0=x;

x1=x0+(h/2)*Fun(t+h,x);

x1=x1+(h/2)*Fun(t+h,x1);

x=x+dx;

E=abs(x1-x);

t=t+h;

t_out=[t_out,t];

y_out=[y_out,x];

end

Текст программы для решения ОДУ методом Эйлера с переменным шагом:

function [t_out,y_out]=RungeKutta1(t0,x0,h,Edop);

% функция решения методом Рунге-Кутта 1

t=t0;

hmax=h;

x=x0;

xmax=max(x0)

t_out=t;

y_out=x0;

E=[1;1];

while E>Edop

K1=Fun(t,x);

dx=h*K1;

x0=x;

x1=x0+(h/2)*Fun(t+h,x);

x1=x1+(h/2)*Fun(t+h,x1);

x=x+dx;

E=abs(x1-x);

hi=(0.001*xmax)./(abs(Fun(t,x))+(0.001*xmax)./hmax);

h=min(hi);

if h>hmax

hmax=h;

end

t=t+h;

t_out=[t_out,t];

y_out=[y_out,x];

end

Приложение 2

График функции для явного метода Эйлера для обычной системы ОДУ с постоянным шагом интегрирования 0,01

График функции для явного метода Эйлера для обычной системы ОДУ с постоянным шагом интегрирования 0,001

График функции для явного метода Эйлера для обычной системы ОДУ с переменным шагом интегрирования менее 0,01

График функции для явного метода Эйлера для жесткой системы ОДУ с постоянным шагом интегрирования 0,01

График функции для явного метода Эйлера для жесткой системы ОДУ с постоянным шагом интегрирования 0,001

График функции для явного метода Эйлера для жесткой системы ОДУ с переменным шагом интегрирования менее 0,01

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

...

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

  • Метод Гаусса-Зейделя как модификация метода Якоби, его сущность и применение. Разработка программы решения системы линейных алгебраических уравнений на языке VB, проверка правильности работы программы в MS Excel и математических пакетах MathCad и MatLab.

    курсовая работа [325,5 K], добавлен 27.10.2013

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

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

  • Методы решения систем линейных алгебраических уравнений. Метод простых итераций и метод Зейделя. разработка программы для решения СЛАУ с произвольным количеством уравнений. Реализация методов Зейделя и простых итераций для получения вектора решений СЛАУ.

    курсовая работа [25,0 K], добавлен 20.11.2008

  • Системы линейных алгебраических уравнений. Код программы для решения систем линейных алгебраических уравнений. Математические и алгоритмические основы решения задачи методом Гаусса. Программная реализация решения. Алгоритмы запоминания коэффициентов.

    лабораторная работа [23,5 K], добавлен 23.09.2014

  • Рассмотрение двух способов решения систем линейных алгебраических уравнений: точечные и приближенные. Использование при программировании метода Гаусса с выбором главного элемента в матрице и принципа Зейделя. Применение простой итерации решения уравнения.

    курсовая работа [879,8 K], добавлен 05.06.2012

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

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

  • Использование метода Зейделя для нахождения корней системы линейных алгебраических уравнений. Суть метода простых итераций. Оценка погрешности нормальной системы. Составление алгоритма, блок-схемы и кода программы. Тестовый пример и проверка в MathCad.

    лабораторная работа [174,8 K], добавлен 02.10.2013

  • Сущность матричного метода. Разработка программы решения системы уравнений линейных алгебраических уравнений методом решения через обратную матрицу на языке программирования Delphi. Представление блок-схемы и графического интерфейса программного продукта.

    курсовая работа [1,0 M], добавлен 27.09.2014

  • Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.

    курсовая работа [1,6 M], добавлен 20.01.2010

  • Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.

    дипломная работа [144,8 K], добавлен 25.04.2012

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

    курсовая работа [38,0 K], добавлен 26.04.2011

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

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

  • Применение численного метода решения систем линейных алгебраических уравнений, используемых в прикладных задачах. Составление на базе метода матрицы Гаусса вычислительной схемы алгоритма и разработка интерфейса программы на алгоритмическом языке.

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

  • Разработка программного продукта на языке Delphi 7.0. Матричный метод решения однородных и неоднородных систем линейных уравнений. Разработка интерфейса. Тестирование и описание объектов программы. Описание процесса вычисления определителей матриц.

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

  • Изучение основных этапов проектирования программных систем, создание прикладной программы, которая выполняет решение систем линейных алгебраических уравнений методом Гаусса. Вычисление определителя и обращение матриц. Листинг разработанной программы.

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

  • Алгоритм решения систем линейных уравнений методом Гаусса, его этапы. Система уравнений для определения коэффициентов сплайна, представляющая собой частный случай систем линейных алгебраических уравнений. Программная реализация, тестовый пример.

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

  • Сущность и особенности языка программирования Си. Основные этапы алгоритма решения системы линейных алгебраических уравнений методом Гаусса, реализация программы для их расчета. Инструкции пользователя и программиста. Тестирование функции решения.

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

  • Нахождение XI–неизвестных. Определение количества ITER-итераций. Составление текста программы, ее тестирование. Условия применения итерационного метода. Выбор количества итераций, исследование их зависимости от точности (eps). Получение корней уравнений.

    контрольная работа [33,8 K], добавлен 27.02.2014

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

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

  • Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.

    курсовая работа [1,6 M], добавлен 14.02.2021

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