Решение алгебраических и дифференциальных уравнений в пакете MatLab
Использование команды plot и fplot при построении графиков. Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта четвертого порядка. Построение графика значений по методам дифференцирования.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.04.2014 |
Размер файла | 197,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«Дальневосточный федеральный университет»
ИНЖЕНЕРНАЯ ШКОЛА
Кафедра электроэнергетики и электротехники
КУРСОВАЯ РАБОТА
«Решение алгебраических и дифференциальных уравнений в пакете MatLab»
Студент гр. Б3305зс
Жуков Андрей Николаевич
Руководитель Комлев А.В.
Владивосток 2014
Вариант 22
1 Вычислить с помощью файл - функции значения f1, f2, f3, f4, f5 из командного окна и из фал - программы:
а) задан один входной параметр
Результат f1 вывести в численной (в виде таблицы) и графической формах. При построении графиков использовать команды plot и fplot. Графики должны быть построены на одной координатной плоскости.
Файл - функции; fun.m
function f1 = fun(x)
f1 = log(abs(cos(x)))./log(1+x.^2);
Файл - программа; progrf1.m
clear all; clc;
fprintf('ТАБЛИЦА ЗНАЧЕНИЙ ФУНКЦИИ f1\n');
fprintf('----------------------------\n');
fprintf(' | x | f1 |\n');
fprintf('----------------------------\n');
x=[0.5:0.5:12.0];
f1=fun(x);
v=[x;f1];
fprintf(' | %6.3f | %6.3f |\n',v)
plot(x,f1,'r')
grid on
hold on
fplot('fun', [0.5 12.0])
title('Figure f1');
xlabel('x');
ylabel('f1');
legend('plot', 'fplot',4)
Рисунок 1 График значений f1
б) задано несколько входных параметров
Файл - функции; radf2.m
function f2 = radf2(x,y,z)
f2 = sqrt(2.*x+2*sqrt(y.^2-4))/sqrt(x.^2-4+z+2);
Файл - программа; progrf2.m
clear all; clc;
f2 = radf2(2,4,6)
Результат работы программы;
f2 =1.1688
б) задано несколько выходных параметров
Файл - функции; f345b.m
function [f3, f4, f5] = f(x)
f3 = 2*sqrt(x.^2+1);
f4 = cos(x./2);
f5 = 2*sin(x+1);
Файл - программа; progrf345.m
clear all; clc;
x=13;
[F3, F4, F5]=f345b(x)
Результат работы программы;
F3 = 26.0768, F4 = 0.9766, F5 = 1.9812
2. Решить дифференциальное уравнение двумя способами
а) с использованием классических алгоритмов численных методов Эйлера и Рунге - Кутта 4-го порядка;
Метод Эйлера
Файл - функции; Eiler_13
function[T,Y]=Eiler_13(y0,t0,t1,h)
N=(t1-t0)/h;
t(1)=t0;
y(1)=y0;
for i=1:N
t(i+1)=t(1)+h*i;
y(i+1)=y(i)+h*F13(t(i),y(i));
end;
T=t;
Y=y;
function f=F13(t,y)
a=0.5;
b=0.1;
x=(4/3)*exp(-(a*t));
f=x+b;
Файл - программа; progr13.m
clear all; clc;
h=0.5;
t0=1;
t1=10;
y0=0;
% нахождение численного решения задачи Коши
[T,Y]=Eiler_13(y0,t0,t1,h);
fprintf('ТАБЛИЦА ЗНАЧЕНИЙ по методу Эйлера\n');
fprintf('---------------------------------\n');
fprintf(' | T | Y |\n');
fprintf('---------------------------------\n');
v=[T;Y];
fprintf(' | %4.2f | %4.4f |\n',v);
grid on
hold on
plot(T,Y,'r-')
title('Figure Eiler');
xlabel('T');
ylabel('Y');
Результат работы программы;
Рисунок 2 График значений по методу Эйлера
Метод Рунге - Кутта 4-го порядка;
Файл - функции; rkutta.m
function[T,Y]=rkutta(y0,t0,t1,h)
N=(t1-t0)/h;
t(1)=t0;
y(1)=y0;
for i=2:N+1
t(i)=t(1)+h*(i-1);
k1=h*F13(t(i-1),y(i-1));
k2=h*F13(t(i-1)+h/2,y(i-1)+k1/2);
k3=h*F13(t(i-1)+h/2,y(i-1)+k2/2);
k4=h*F13(t(i-1)+h,y(i-1)+k3);
y(i)=y(i-1)+1/6*(k1+2*k2+2*k3+k4);
end;
T=t;
Y=y;
function f=F13(t,y)
a=0.5;
b=0.1;
x=(4/3)*exp(-(a*t));
f=x+b;
Файл - программа; progrrkutta.m
clear all; clc;
h=0.5;
t0=1;
t1=10;
y0=0;
% нахождение численного решения задачи Коши
[T,Y]=rkutta(y0,t0,t1,h);
fprintf('ТАБЛИЦА ЗНАЧЕНИЙ по методу Рунге-Кутта\n');
fprintf('--------------------------------------\n');
fprintf(' | T | Y |\n');
fprintf('--------------------------------------\n');
v=[T;Y];
fprintf(' | %4.2f | %4.4f |\n',v);
grid on
hold on
plot(T,Y,'r*')
Результат работы программы;
Рисунок 3 График значений по методу Рунге - Кутта
б) с использованием солвера ode45;
Файл - функции; fn.m
function f=fn(t,x)
a=0.5;
b=0.1;
x=(4/3)*exp(-(a*t));
f=x+b;
Файл - программа; progrfn.m
clear all; clc;
[T,Y]=ode45('fn',[1:0.5:10],[0]); %вызов солвера
fprintf('ТАБЛИЦА ЗНАЧЕНИЙ по солверу ode45\n');
fprintf('---------------------------------\n');
fprintf(' | T | Y |\n');
fprintf('---------------------------------\n');
[T,Y]
grid on
hold on
plot(T,Y)
title('Figure ode45');
xlabel('T');
ylabel('Y');
Результат работы программы;
Рисунок 3 График значений по солверу ode45
график дифференциальный уравнение эйлер
Рисунок 4 График значений по методам дифференцирования
Размещено на Allbest.ru
Подобные документы
Практическое решение дифференциальных уравнений в системе MathCAD методами Рунге—Кутты четвертого порядка для решения уравнения первого порядка, Булирша — Штера - системы обыкновенных дифференциальных уравнений первого порядка и Odesolve и их графики.
лабораторная работа [380,9 K], добавлен 23.07.2012Решение дифференциальных уравнений. Численный метод для заданной последовательности аргументов. Метод Эйлера относиться к численным методам, дающим решение в виде таблицы приближенных значений искомой функции. Применение шаговых методов решения Коши.
дипломная работа [1,2 M], добавлен 16.12.2008Математическое объяснение метода Эйлера, исправленный и модифицированный методы. Блок-схемы алгоритмов, описание, текст и результаты работы программы. Решение обыкновенных дифференциальных (нелинейных) уравнений первого порядка с начальными данными.
курсовая работа [78,1 K], добавлен 12.06.2010Общая характеристика и особенности двух методов решения обычных дифференциальных уравнений – Эйлера первого порядка точности и Рунге-Кутта четвёртого порядка точности. Листинг программы для решения обычного дифференциального уравнения в Visual Basic.
курсовая работа [1,1 M], добавлен 04.06.2010Решение эллиптических и параболических дифференциальных уравнений в частных производных. Суть метода Кранка-Николсона и теории разностных схем для теплопроводности. Построение численных методов с помощью вариационных принципов, описание Matlab и Mathcad.
курсовая работа [1,4 M], добавлен 13.03.2011Численное решение уравнения методом Эйлера и Рунге-Кутта в Excel. Программа на языке Turbo Pascal. Блок-схема алгоритма. Метод Рунге-Кутта для дифференциального уравнения второго порядка. Модель типа "хищник-жертва" с учетом внутривидового взаимодействия.
курсовая работа [391,5 K], добавлен 01.03.2012Формирование системы их пяти уравнений по заданным параметрам, ее решение методом Гаусса с выбором главного элемента. Интерполяционный многочлен Ньютона. Численное интегрирование. Решение нелинейных уравнений. Метод Рунге-Кутта четвертого порядка.
контрольная работа [115,5 K], добавлен 27.05.2013Изучение методов Рунге-Кутты четвертого порядка с автоматическим выбором длины шага интегрирования для решения дифференциальных уравнений. Оценка погрешности и сходимость методов, оптимальный выбор шага. Листинг программы для ЭВМ, результаты, иллюстрации.
курсовая работа [2,9 M], добавлен 14.09.2010Теоретическое обоснование расчетных формул. Задача Коши для дифференциального уравнения первого порядка. Метод Рунге-Кутта. Ломаная Эйлера. Построение схем различного порядка точности. Выбор шага. Апостериорная оценка погрешности. Правило Рунге.
курсовая работа [111,1 K], добавлен 13.11.2011Виды дифференциальных уравнений: обыкновенные, с частными производными, стохастические. Классификация линейных уравнений второго порядка. Нахождение функции Грина, ее применение для решения неоднородных дифференциальных уравнений с граничными условиями.
курсовая работа [4,8 M], добавлен 29.04.2013