Matlab cum să obțineți soluția numerică a sistemului diffur

Se pare că deja câștig liniștit, nu fără ajutorul dvs., desigur :)
Codul funcției este acum:

funcția dy = oscilatorul1 (t, x)
global k1 k2 m1 m2;
dy = zerouri (4, 1); % 4 ecuații






dy (1) = -k1 / m1 * x (1) + k2 / m1 * (x (2) - x (1));
dy (2) = -k2 / m2 * (x (2) - x (1));
dy (3) = dy (1);
dy (4) = dy (2);

Nu înțeleg de unde, în general, parametrii t și x sunt luați în oscilatorul de funcții? De unde provin? Nu înțeleg exact unde sunt transferate și câte variabile sunt transmise acestei funcții. )

În fereastra de comandă am:

clar toate;
global k1 k2 m1 m2;
k1 = 2; k2 = 3; m1 = 2; m2 = 3;
t = 1;
# T; Y # 93; = ode45 (@ Oscillator1, # 91; 0 4 # 93 ;, # 91; 1 1 0 0 # 93;);
complot (T, Y (:, 1), '- o')

Dar sinusoidele, ca și înainte, nu funcționează. Se pare că o anumită diagramă care se încadrează cu y = 1 în jos, se apropie asimptotic de zero :) pentru exponent este similară cu cea desfășurată de la stânga la dreapta :)

Deci, ei bine, codurile sunt corecte (exacte cu intervalul necesar de integrare și date inițiale și incomprehensibile). La prima vedere, sinele nu sunt clare de unde vor apărea, pentru că arată clar că prima ecuație are forma și, prin urmare, este normal să se aștepte un exponent descrescător. Adevărat, există un gunoi în locul tripletului, așa că nu va fi destul de un exponat. Nu cred cu adevărat că, chiar și cu alte date inițiale, vor exista sinusuri, dar nu știu sigur.






Dar abilitățile mele extrasenzoriale îmi șoptește că ai fost inițial dat două difuzoare de ordinul doi, care, pentru a rezolva mașina, trebuie să dai mai întâi difuzoarelor de ordinul întâi. Și această abordare oferă într-adevăr un sinus. Verificați problema pe care o rezolvați?

Nu înțeleg de unde, în general, parametrii t și x sunt luați în oscilatorul de funcții? De unde provin? Nu înțeleg exact unde sunt transferate și câte variabile sunt transmise acestei funcții. )


Acestea sunt transmise acolo din funcția ode45. Funcția ode45 implementează integratorul popular de difuzor de ordin 1, utilizând formulele Runge-Kutta încorporate 5 (4) Dorman-Prince. Integratorul trebuie să calculeze valoarea părții drepte a difuzoarelor în anumite puncte. Aici arată în ce și înlocuiește valorile necesare în oscilatorul de funcții. Puteți vedea pentru dvs. că este deschis codul sursă al funcției ode45.

Ei bine, după cum se face de obicei, introduceți noi variabile și rescrieți ecuațiile după tip

Apoi Matlabov X va fi un vector

Cred că deja poți programa totul.


Ceva inca nu inteleg cum se va arata in functia Matlabov :) Am incercat sa rescriu ceva de genul asta:

dy (1) = x (1);
dy (2) = x (2);
dy (3) = - (k1 / ml) * x (1) + k2 / m1 * (x (2) - x (1));
dy (4) = - (k2 / m2) * (x (2) - x (1));

dar, de asemenea, nu pare același lucru. Ori sunt confuz în variabilele. De fapt, la mine după toate dy (3) și dy (4) este de asemenea v1 ', v2'?







Trimiteți-le prietenilor: