Решение дифференциального уравнения
Автор: vadim-ahpashev • Сентябрь 11, 2019 • Курсовая работа • 883 Слов (4 Страниц) • 400 Просмотры
Федеральное государственное автономное
образовательное учреждение высшего образования
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
Политехнический институт
Кафедра «Электроэнергетика и электротехника»
КУРСОВАЯ РАБОТА
Решение дифференциального уравнения
тема проекта (работы)
в программе MatLab.
Преподаватель | В. В. Шевченко | ||||
подпись, дата | инициалы, фамилия | ||||
Студент | ФЭ18-05Б, | В.А. Ахпашев | |||
номер группы, зачетной книжки | подпись, дата | инициалы, фамилия |
Красноярск 2019
Содержание
1.Задание………………………………………………………………………... | 3 |
2.Решение…..……………...……………………..……………………………... | 3 |
3.Программа, процедуры и их описание….…………...…………………....... | 3 |
4.Схема в «Simulink» и алгоритм работы программы……………………… | 6 |
5.Результат …………………………..…………………………………….…... | 8 |
- Задание.
- Построить модель заданного дифференциального уравнения
« » в SimuLink;[pic 1]
- Выбрать начальное значение времени t0 и начальное значение функции y0, для которых существует решение уравнения;
- Найти приращение d для начального значения функции y0 так, чтобы можно было получить 20 различных решений уравнения с начальными данными: y0i=y0+i*d, y0`, i=0,…,19;
- Составить массив данных в виде таблицы, где каждая строка состоит из 20-ти первых значений численного решения;
- Отобразить эти данные в графическом окне Matlab;
- Изменить свойства отображенных чисел так, чтобы выделилась буква U;
- Решение.
Решение основано на последовательном переборе программой заданного уравнения и определение 20-ти первых решений с их последующим переносом на координатную сетку команды «axes», присвоение командой «set» цвета нужным диапазонам чисел (работа выполнялась на версии программы R2018b).
- Программа, процедуры и их описание.
Решение представлено в виде файла «M-Function», представляющего запись основного кода и вспомогательного – решения дифференциального уравнения.
function [z] = funU(t,y)
z = [y(2);1/t-y(2)*sin(t*y(1))];
Основной программный код (представлен с комментариями далее) содержит в себе заданные начальные значения, задание нулевой матрицы, численное решение дифференциального уравнения с помощью функции «ode45» из файла со вспомогательным кодом построение фигуры в осях и вставку в оси матрицы из решений уравнения.
x1 = 0.1;
x2 = 0.5;
d = 0.02;
for i=0:19
x1 = x1+d*i;
[T,Y] = ode45(@funU, [1 2], [x1;x2]);
array(i+1,:) =roundn(Y(1:20),-3);
end
g=1;
[n, m] = size(array);
axes('XLim', [0 n+1], 'YLim', [0 m+1]);
for i=1:n
for j=1:m
UP(i,j)=text(1+g*(j-1),20-g*(i-1),num2str(array(i,j)));
end
end
set(UP(3:18,3:4),'Color', 'r');
set(UP(3:18,16:17),'Color', 'r');
set(UP(19:20,4:16),'Color', 'r');
Далее детальнее будут рассмотрены блоки основного кода.
- Блок задания матрицы:
x1 = 0.1;
x2 = 0.5;
...