Skovorodin
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Дано: код Maple для решения системы дифференциальных уравнений ван дер Пола с переменной константой mu. restart; with(plots); randomize(); L := [seq(RandomTools:-Generate(float(range = 1. .. 2., digits = 10)), k = 0 .. 40)]; mu := unapply(piecewise(seq(op([n <= t and t < n + 1, L[n + 1] + (t - floor(t))*(L[n + 2] - L[n + 1])]), n = 0 .. 39), L[41]), t); P1 := plot(mu(t), t = 0 .. 40, 0 .. 2, color = "Green"); P2 := pointplot([seq([i - 1, L[i]], i = 1 .. 41)], color = "Green", symbol = solidcircle, symbolsize = 7); display(P1, P2, size = [900, 400], labels = ["t", "mu(t)"]); de := diff(y1(t), t) = y2(t), diff(y2(t), t) = mu(t)*(1 - y1(t)^2)*y2(t) - y1(t); sol := dsolve({de, y1(0) = 1, y2(0) = 0}, numeric); odeplot(sol, [[t, y1(t)], [t, y2(t)]], t = 0 .. 40, color = [red, blue], legend = [y1(t), y2(t)]); Необходимо преобразовать код Maple в код Matlab. Константа mu получает различные случайные значения в промежутке времени от 0 до 40 суток. Желательно систему уравнений ван дер Пола: de := diff(y1(t), t) = y2(t), diff(y2(t), t) = mu(t)*(1 - y1(t)^2)*y2(t) - y1(t) разместить в отдельном файле-функции Matlab, а остальные коды в файле-программе Matlab. |