Решение алгебраических и дифференциальных уравнений в пакете MatLab
Примеры вычисления функций при заданных одном или нескольких параметрах. Результаты выполнения программы в числовой и графической форме. Решение дифференциальных уравнений с использованием алгоритмов численных методов Эйлера и Рунге-Кутта 4 порядка.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.12.2015 |
Размер файла | 695,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«Дальневосточный федеральный университет»
ИНЖЕНЕРНАЯ ШКОЛА
Кафедра электроэнергетики и электротехники
КУРСОВАЯ РАБОТА
по дисциплине «Прикладное программирование»
«Решение алгебраических и дифференциальных уравнений в пакете MatLab»
Студент гр. Б3205а
Скоробогатов Александр Сергеевич
Руководитель к.т.н., доцент
Н.М. Марченко
г. Владивосток
2015
Задание №1
а) Задан один входной параметр. Вычислить функцию f1, результат вывести в численной (таблица) и графических (plot и fplot) формах.
Описание буквенных переменных:
x - переменная, изменяемая в диапазоне [0:0.02:2] , где 0-начальное значение, 0.02-шаг изменения переменной, 2-конечное значение;
h - шаг изменения x;
y -искомая функция, зависящая от x.
Текст основной программы:
fprintf('-------------------------\n');
fprintf('| x | y |\n');
fprintf('----------------------------\n');
x=[0:0.02:2];
y=fun1(x);
v=[x;y];
fprintf('| %6.2f | %11.3f |\n',v)
plot(x,y,'b-')
hold on
grid on
fplot('fun1', [0 2],'r-')
hold on
Текст файл-функции:
function f1=fun1(x)
f1=exp(x)-x-2+(1+x).^x;
end
Результат выполнения программы:
Рисунок 1 - Таблица значений x и y
Рисунок 2 - Конец таблицы значений x и y
Рисунок 3 - Графики функции y
б) Задано несколько входных параметров. Вычислить функцию f2.
Описание буквенных переменных:
x, y, z - задаваемые переменные;
f2 - искомая функция, зависящая от x, y, z.
Тексте основной программы:
x=5;
y=6;
z=7;
f2=fun2(x,y,z)
Текст файл-функции:
function f2=fun2(x,y,z)
f2=sqrt((3*x+2)^2-24*y)/(3*sqrt(y)-2/sqrt(z));
end
Результат выполнения программы:
Рисунок 4 - Вычисление значения f2
в) Задано несколько выходных параметров. Вычислить функции f3, f4 и f5.
Описание буквенных переменных:
x - задаваемый переменная;
y1, y2, y3 - искомые функции, зависящие от x.
Текст основной программы:
x=5;
[y1,y2,y3]=fun3(x)
Текст файл-функции:
function [f3,f4,f5]=fun3(x)
f3=sin(2*x);
f4=(sqrt(x^3));
f5=x^(-1);
end
Результат выполнения программы:
Рис. 5 - Вычисление y1, y2, y3
Задание №2
а) Решить дифференциальное уравнение с использованием алгоритмов численных методов Эйлера и Рунге-Кутта 4 порядка.
Метод Эйлера
Рис.6 - Блок-схема алгоритма
Описание буквенных переменных:
t - переменная;
tn - начальное значение t;
tk - конечное значение t;
h - шаг изменения t;
x - функция, зависящая от t;
y - функция, зависящая от t;
f - производная y'(t) ;
a, b, c - задаваемые величины.
Текст основной программы:
tn=0;
tk=3;
h=0.01;
y=0;
b=3;
fprintf('-------------------------------\n');
fprintf('| t | x | y | \n');
fprintf('-------------------------------\n');
for t=tn:h:tk
x=-b*t+1;
f=ailer(x);
y=y+h*f;
fprintf('| %4.2f | %4.2f | %4.2f |\n',t,x,y);
plot(t,x,'g.')
grid on
hold on
plot (t,y,'r.')
end
Текст файл-функции:
function f=ailer(x)
a=2;
c=4;
f=(-a/c)*x;
end
Результат выполнения программы:
а) б)
Таблица значений t, x(t), y(t).
Рис.7(а) - начало таблицы; Рис.7(б) - окончание таблицы
Рис. 8 - Графики функций x(t), y(t)
Метод Рунге-Кутта 4 порядка
Рис.9 - Блок-схема алгоритма
Описание буквенных переменных:
t - переменная;
tk - конечное значение t;
h - шаг изменения t;
x - искомая функция, зависящая от t;
y - искомая функция, зависящая от t;
f - производная y'(t);
k - коэффициенты Рунге-Кутта;
s - сумма коэффициентов;
a, b, c- задаваемые величины.
Текст основной программы:
t=0;
tk=3;
h=0.01;
y=0;
y1=0;
b=3;
fprintf('-------------------------------\n');
fprintf('| t | x | y | \n');
fprintf('-------------------------------\n');
x=-b*t+1;
fprintf('| %4.2f | %4.2f | %4.2f |\n',t,x,y);
while(t<tk-h)
f=ailer(x);
k=f*h;
s=k;
y=y+k/2;
t=t+h/2;
x=-b*t+1;
for j=1:2
f=ailer(x);
k=f*h;
s=s+2*k;
y=y1+k/2;
end
t=t+h/2;
y=y+k/2;
x=-b*t+1;
f=ailer(x);
s=s+h*f;
y=y1+(1/6*s);
fprintf('| %4.2f | %4.2f | %4.2f |\n',t,x,y);
plot(t,x,'g.')
grid on
hold on
plot (t,y,'r.')
y1=y;
end
Текст файл-функции:
function f=ailer(x)
a=2;
c=4;
f=(-a/c)*x;
end
Результат выполнения программы:
а) б)
Таблица значений t, x(t), y(t). Рис.10( а) - начало; Рис.10(б) - окончание
Рис.11 - Графики функций x(t), y(t)
б) Решить дифференциальное уравнение с использованием солвера ode45 программного пакета MatLab.
Текст основной программы:
[t,y]=ode45('forsolver',[0:0.01:3],0);
[t,y]
figure
plot(t,y)
Текст файл-функции:
function f=forsolver(t,x)
a=2;
b=3;
c=4;
x=-b*t+1;
f=(-a/c)*x;
end функция дифференциальный числовой графический
Результат выполнения программы:
а) б)
Таблица значений t, y(t) . Рис.12(а) - начало; Рис.12(б) - окончание
Рис. 13 - График функции y(t)
Размещено на Allbest.ru
...Подобные документы
Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта 4-го порядка. Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений. Результат работы программы.
курсовая работа [226,6 K], добавлен 05.04.2013Обзор методов решения в Excel. Рекурентные формулы метода Эйлера. Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка. Метод Эйлера с шагом h/2. Решение дифференциальных уравнений с помощью Mathcad. Модифицированный метод Эйлера.
курсовая работа [580,1 K], добавлен 18.01.2011Решение дифференциального уравнения с помощью численных методов (Рунге-Кутта и Эйлера модифицированного). Особенности построения графиков в программе Microsoft Visual Basic 10 с использованием ответа задачи, который имеет незначительную погрешность.
курсовая работа [1017,3 K], добавлен 27.05.2013Изучение численных методов решения нелинейных уравнений. Построение годографа АФЧХ, графиков АЧХ и ФЧХ с указанием частот. Практическое изучение численных методов интегрирования дифференциальных уравнений высокого порядка, метод Рунге-Кутта 5-го порядка.
курсовая работа [398,3 K], добавлен 16.06.2009Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.
курсовая работа [1,1 M], добавлен 02.06.2014Решение системы обыкновенных дифференциальных уравнений в программе Matlab. Применение метода Рунге–Кутты. Априорный выбор шага интегрирования. Построение трехмерного графика движения точки в декартовой системе координат и создание видеофайла формата AVI.
контрольная работа [602,8 K], добавлен 04.05.2015Математическая модель, описание теории, применяемой к задаче. Обсчет точек методом Рунге-Кутта, модифицированным методом Эйлера, схема и листинг программы. Решение дифференциальных уравнений и построение графиков, решение уравнений в среде Turbo Pascal.
курсовая работа [76,7 K], добавлен 18.11.2009Реализация решения обыкновенных дифференциальных уравнений 1-го и 2-го порядка методом Рунге-Кутты. Построение на ЭВМ системы отображения результатов в табличной форме и в виде графика. Архитектура и требования к разрабатываемым программным средствам.
курсовая работа [2,7 M], добавлен 05.11.2011Разработка программы на языке Turbo Pascal 7.0 для преобразования кинетической схемы протекания химических реакций при изотермических условиях в систему дифференциальных уравнений. Ее решение в численном виде методом Рунге-Кутта четвертого порядка.
курсовая работа [929,7 K], добавлен 06.01.2013Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.
курсовая работа [532,9 K], добавлен 14.01.2014Принцип и значение метода Эйлера для расчета дифференциальных уравнений. Анализ его геометрического смысла. Улучшение метода за счет аппроксимации производной. Разработка блок-схем и программы на языке Turbo Pascal для проверки методов интегрирования.
курсовая работа [385,7 K], добавлен 15.06.2013Численный метод для решения однородного дифференциального уравнения первого порядка методом Эйлера. Решение систем дифференциальных уравнений методом Рунге–Кутта. Решение краевой задачи. Уравнения параболического типа, а также Лапласа и Пуассона.
курсовая работа [163,5 K], добавлен 27.05.2013Схема и основные параметры элементов цепи. Вывод системы дифференциальных уравнений. Реализация алгоритма на языке программирования высокого уровня Pascal. Решение дифференциальных уравнений в пакете MathCAD. Решение интерполяции в пакете Excel.
курсовая работа [375,4 K], добавлен 06.01.2011Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.
курсовая работа [385,0 K], добавлен 17.09.2009Анализ преимуществ и недостатков различных численных методов решения дифференциальных уравнений высших порядков. Обоснование выбора метода Рунге-Кутта четвертого порядка. Разработка программы, моделирующей физическое и математическое поведение маятника.
курсовая работа [1,6 M], добавлен 11.07.2012Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.
курсовая работа [1,6 M], добавлен 20.01.2010Анализ предметной области объектно-ориентированного программирования. Языки Delphi, Object Pascal - объектно-ориентированная среда программирования. Основные алгоритмические решения. Решение дифференциального уравнения методом Рунге-Кутта в среде Excel.
курсовая работа [1,5 M], добавлен 02.04.2011Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++.
курсовая работа [163,4 K], добавлен 16.05.2016Математическое описание численных методов решения уравнения, построение графика функции. Cтруктурная схема алгоритма с использованием метода дихотомии. Использование численных методов решения дифференциальных уравнений, составление листинга программы.
курсовая работа [984,2 K], добавлен 19.12.2009