ПредишенСледващото

Както вече спечеля в тихо, не без вашата помощ, разбира се :)
Функция код сега е, както следва:

функция ди = oscillator1 (т, х)
глобален k1 k2 m1 m2;
Dy = нули (4, 1); 4% уравнения
ди (1) = -k1 / m1 * х (1) + k2 / m1 * (х (2) - х (1));
ди (2) = -k2 / m2 * (х (2) - х (1));
ди (3) = ди (1);
ди (4) = ди (2);

Не мога да разбера къде всички параметри т и х са взети в oscillator1 функция? Когато те се прехвърлят? Аз не знам точно къде са изпратени и колко променливи предадени на тази функция. )

В командния прозорец към мен:

изчистите всички;
глобален k1 k2 m1 m2;
k1 = 2; k2 = 3; m1 = 2; m2 = 3;
т = 1;
# 91; T, Y # 93; = Ode45 (@ oscillator1, # 91; 0 # 4 93; # 91; 1 1 0 0 # 93);
парцел (T, Y (: 1), "- о)

Но задължително вълна, както и преди, не работи. Оказва се, някакъв падане графика с у = 1 надолу, асимптотично близо до нула :) изглежда като експоненциална разположени от ляво на дясно :)

Така че, добре, правилните кодове (до желания от вас интервал на интеграция, а първоначалните данни и неразбираемо). На пръв поглед не е ясно къде синусите ще бъде, защото не може да има ясно се вижда, че първото уравнение е от вида, така че очакваме намаляване на експоненциална функция - това е нормално. Въпреки това, на сайта на елипса някои боклук, така че това не е изцяло на изложителя. Аз не вярвам, че дори и някой друг ще синуси, но не знам за някои първоначални данни.
Но моите психически способности са шепнат ми се, че първоначално са били дадени 2 diffura втори ред, който, за решението на колата, трябва да се доведе първо до първата поръчка 4 diffuram. Но този подход дава синусите. Проверете какъв проблем се реши?

Не мога да разбера къде всички параметри т и х са взети в oscillator1 функция? Когато те се прехвърлят? Аз не знам точно къде са изпратени и колко променливи предадени на тази функция. )


Те са преминали към ode45 на функция. ode45 функция изпълнява популярен интегратор diffurov първата цел на вградените Runge-Kutta формули 5 (4) Dorman-Prince. Integrator е необходимо да се изчисли стойността на дясната страна на diffurov в някои точки. Тук той изглежда по всяко и замества стойности за функцията на осцилатор. Можете да направите това е да се следват, в полза на оригиналната функция кода ode45 отвори.

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

След X е вектор matlabovsky

Мисля, че вече всички те могат да бъдат програмирани.


Нещо все още не е ясно как ще изглежда в зависимост Matlabovskoy :) аз се опитах да се копира върху това:

ди (1) = х (1);
ди (2) = х (2);
ди (3) = - (k1 / m1) * х (1) + k2 / m1 * (х (2) - х (1));
ди (4) = - (k2 / m2) * (х (2) - х (1));

но също така очевидно не. Дали аз съм напълно объркани променливи. Всъщност, аз имам, тъй като ди (3) и ди (4) това е v1 ", v2"?

Подкрепете проекта - споделете линка, благодаря!