Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Numericka metoda resavanja diferencijalnih jednacina

[es] :: Matematika :: Numericka metoda resavanja diferencijalnih jednacina

Strane: 1 2 3

[ Pregleda: 9834 | Odgovora: 41 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zaricmica

Član broj: 184606
Poruke: 84
147.91.203.*



Profil

icon Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 12:11 - pre 165 meseci
E ovako. Radim na jednom programu. Tacnije to mi je seminarski iz Bioinzenjeringa. Zadatak je da se na osnovu doskocne sile izracunaju neki koeficijenti u zglobu,. kolenu i kuku. E sad da bi se pocelo sa tim, treba da se resi sistem jednacina oblika Mx'' + Kx' + cX=F. Ima 4 jednacine sa X1,X2,X3 i X4. I i sa izvodima ovih promenljivih. Kod treba da napisem u C# sto mi nije problem, ali mi je problem kako da resim ovaj sistem. Kojom metodom. Ako neko moze da mi pokaze, bio bih veoma zahvalan. Napominjem da nemam pojma o dif jednacinama, tacnije o numerickim metodama resavanja.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2789 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 14:07 - pre 165 meseci
Čekaj, ako ti je to seminarski, trebalo bi da ste to učili ili da si dobio literaturu.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

zaricmica

Član broj: 184606
Poruke: 84
147.91.203.*



Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 14:39 - pre 165 meseci
Ma nista nisam dobio :)
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2789 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 14:53 - pre 165 meseci
A šta ste učili na datu temu? Jesi li se obratio profesoru?
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

miki069

Član broj: 161528
Poruke: 1951
*.vs.rs.



+370 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 15:20 - pre 165 meseci
Šta su M, K, C i F: konstante ili funkcije?
Pravi sistem ili svako od X1 do X4 ima svoju diferencijalnu jednačinu?
 
Odgovor na temu

p3j4
Lokacija: Mordor

Član broj: 52949
Poruke: 122
*.static.kdsinter.net.



+78 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 17:55 - pre 165 meseci
Secam se iz dinamike konstrukcija ucili smo jedan deo o nelinearnoj analizi gde se diferencijalna jednacina dinamicke ravnoteze resavala numerickom integracijom preko Newmarkovog metoda. Proguglaj to pa vidi, mozda ti bude od pomoci...
Internet forumi su kao javni toalet... udje ko želi, ispiša se gde poželi, i ode...
 
Odgovor na temu

zaricmica

Član broj: 184606
Poruke: 84
*.dynamic.sbb.rs.



Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 22:02 - pre 165 meseci
Meni je profesor rekao da uradim Newmarkovom metodom. Nalazio sam nesto, ali mi je nejasno, posto nismo radili numericke metode. Mi smo radili samo osnovne tipove diferencijalnih jednacina. Koje smo resavali integraljenjem. Sad je ovo nesto novo za mene. A, M,C,K i F su konstante.
 
Odgovor na temu

miki069

Član broj: 161528
Poruke: 1951
*.vs.rs.



+370 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 22:10 - pre 165 meseci
Pravi sistem (u svakoj jednačini se pojavljuje više nepoznatih funkcija X1 do X4)
ili svaka nepoznata funkcija od X1 do X4 ima svoju diferencijalnu jednačinu?

Napiši primer sistema.
 
Odgovor na temu

zaricmica

Član broj: 184606
Poruke: 84
*.dynamic.sbb.rs.



Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina16.09.2010. u 22:33 - pre 165 meseci
7X1"+6000(X1-X3)+5000(X1-X2)+250(X1'-X3')+600(X1'-X2')=68,67 - Fg
gde je Fg poznata vrednost nego nisam racunao.
6X2"-5000(X1-X3)+9000(X2-X3)-600(X1'-X2')=58,86
14X3"+6000(X1-X3)+9000(X2-X3)+25000(X3-X4)+250(X1'-X3')+1700(X3'-X4')=137,34
45X4"-25000(X3-X4)-1700(X3'-X4')=441,45
To je sistem :) "-drugi izvod, '-prvi izvod.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2789 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 13:51 - pre 165 meseci
Ako je to ovaj metod, ja sam ga razumeo ovako:

Dati su jednačina , početni uslov i korak

Formira se niz na sledeći način:

, , . Tako nalazimo .

Za je

,

,

.

Rekapitulacija:

, , ,

Za :

, ,

, za (primetiti da je konstantno),

,

.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Časlav Ilić
Braunšvajg, Nemačka

Član broj: 4945
Poruke: 565
*.dlr.de.



+27 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 14:09 - pre 165 meseci
Prvi korak je da transformišeš sistem tako da ima samo prve izvode, uvođenjem smene . Zatim na levoj strani ostaviš samo prve izvode , a ostalo prebaciš na desnu i izdvojiš koeficijente uz . Tada desnu stranu možeš da izraziš kao proizvod matrice poznatih koeficijenata i vektora , pa sabrano sa još jednim poznatim vektorom, tako da ispadne . Na to se dodaju jednačine usled smena , pa još ako odbacimo indekse, ispadne matrična jednačina . Sada možeš da upotrebiš bilo koju metodu za numeričko rešavanje ovakvog sistema, najjednostavnije Ojlerovu, ili mnogo tačniju Runge-Kutinu četvrtog reda. (Ove dve su najpopularnije, a Njumarkova je koliko vidim negde između po složenosti i tačnosti, ne znam da li ima neku prednost u ovom kontekstu.) Ako je indeks vremenskog trenutka, a vremenski korak, Ojlerova metoda primenjena na ovaj sistem glasila bi:

a Runge-Kutina četvrtog reda:


Ovako bi to izgledalo u pitonu (možda sam dobro presložio koeficijente, a možda i nisam), za nulte početne uslove i nulto :
Code:
# -*- coding: UTF-8 -*-

from numpy import matrix

# Sistem ODJ prvog reda y' = A y + b.
A = matrix([
    [0, 0, 0, 0, 1, 0, 0, 0],
    [0, 0, 0, 0, 0, 1, 0, 0],
    [0, 0, 0, 0, 0, 0, 1, 0],
    [0, 0, 0, 0, 0, 0, 0, 1],
    [(-6000 -5000)/7.0, (+5000)/7.0, (+6000)/7.0, 0, (-250 -600)/7.0, (+600)/7.0, (+250)/7.0, 0],
    [(+5000)/6.0, (-9000)/6.0, (-5000 +9000)/6.0, 0, (+600)/6.0, (-600)/6.0, 0, 0],
    [(-6000)/14.0, (-9000)/14.0, (+6000 +9000 -25000)/14.0, (+25000)/14.0, (-250)/14.0, 0, (+250 -1700)/14.0, (+1700)/14.0],
    [0, 0, (+25000)/45.0, (-25000)/45.0, 0, 0, (+1700)/45.0, (-1700)/45.0],
])
Fg = 0.0
b = matrix([
    0.0,
    0.0,
    0.0,
    0.0,
    (+68.67 -Fg)/7.0,
    (+58.86)/6.0,
    (+137.34)/14.0,
    (+441.45)/45.0,
]).transpose()

# Početni uslovi.
y0 = matrix([
    # Početni položaji: x_1|0, ..., x_4|0.
    0.0,
    0.0,
    0.0,
    0.0,
    # Početne brzine: x_1'|0, ..., x_4'|0.
    0.0,
    0.0,
    0.0,
    0.0,
]).transpose()

# Parametri integracije.
end_time = 1.0
num_steps = 100
dt = end_time / num_steps
print u"Krajnje vreme: %g" % end_time
print u"Broj koraka: %d" % num_steps
print u"Korak: %g" % dt

# Ojlerova metoda.
print u"Integralim..."
y_eu = y0
for k in range(num_steps):
    y_eu = y_eu + dt * (A * y_eu + b)
print u"Konačni položaji i brzine Ojlerovom metodom:"
print y_eu

# Runge-Kutina metoda četvrtog reda (R-K 4).
print u"Integralim..."
y_rk4 = y0
for k in range(num_steps):
    q1 = A * y_rk4 + b
    q2 = A * (y_rk4 + 0.5 * dt * q1) + b
    q3 = A * (y_rk4 + 0.5 * dt * q2) + b
    q4 = A * (y_rk4 + dt * q3) + b
    y_rk4 = y_rk4 + (1.0 / 6) * dt * (q1 + 2 * q2 + 2 * q3 + q4)
print u"Konačni položaji i brzine metodom R-K 4:"
print y_rk4

Ako se korak integracije smanjuje (tj. povećava krajnje vreme ili smanjuje broj koraka), rezultat će očekivano polako gubiti na tačnosti, ali će takođe pri određenom prevelikom koraku potpuno „odlepiti“ (izvršiti program za brojeve koraka npr. 50 i 60). To je tzv. granica stabilnosti za eksplicitne metode (kakve su i Ojlerova i R-K 4), i zavisi od jednačine koja se rešava.
 
Odgovor na temu

zaricmica

Član broj: 184606
Poruke: 84
147.91.203.*



Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 15:44 - pre 165 meseci
Ja se izvinjavam. Doslo je do greske. Fg nije numericka vrednost. Vec je data formulom Fg= Ac(a*X1^b+c*X1^d*X1'^e)
^-na stepen
a= 1X10^6;b=1.56;c=2X10^4;d=0.73;e 1.0.
Izvinjavam se, ali mi je ovo hitno posto idem u nemacku za nedelju do dve, pa moram da zavrsim ispit. Ako mozete da pustite kroz program, da vidim koja su resenja. Hvala vam puno i bez toga.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2789 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 16:29 - pre 165 meseci
Časlave, rečeno joj je kojom metodom da radi. Ne trebaju joj ni Ojlerova metoda, ni metoda Runge-Kuta.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2789 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 16:30 - pre 165 meseci
@zaricmica

Već sam ti raspisao algoritam. Šta sad nije u redu? Ako nešto nisi razumela ili ti još nešto zapinje, reci.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

zaricmica

Član broj: 184606
Poruke: 84
147.91.203.*



Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 16:33 - pre 165 meseci
Nije bitna metoda. Bitno mi je samo da dobijem resenja za X1,2,3,4. Kojom metodom nebitno. Mogu i u matlab da pustim da resi sistem. Ali ne znam kako.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2789 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 16:43 - pre 165 meseci
Onda ti je Časlavov predlog najjednostavniji.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

atomant
Beograd

Član broj: 47540
Poruke: 263
*.dynamic.isp.telekom.rs.



+34 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 19:43 - pre 165 meseci
Mogu ja u Matlabu da ti napisem ta 3-4 reda koja ce ti resiti ovo (mislim da koristi RK4), ali prvo mi objasni sta je ovo?

Fg= Ac(a*X1^b+c*X1^d*X1'^e). Sta je Ac? Za Fg sam video da figurise u jednacini, koeficijente si dala. Zanima me samo sta je Ac?
If you can't explain it simply, you don't understand it well enough. A. Einstein
 
Odgovor na temu

zaricmica

Član broj: 184606
Poruke: 84
*.dynamic.isp.telekom.rs.



Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina17.09.2010. u 20:02 - pre 165 meseci
Ac=2.0 izvinjavam se sto nije stavljeno...
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2789 Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina18.09.2010. u 00:57 - pre 165 meseci
Prilažem C++ program, doduše netestiran, pa probaj sa njim. Može se kompajlirati bilo kojim C++ prevodiocem. Preporučujem da skineš Code::Blocks sa MinGW prevodiocem.

Na početku treba da uneseš početnu i krajnju vrednost za t, korak i početni uslov. Ja nisam mogao da ih unesem u program, jer nisu zadati.

Malo mi je sumnjiv tvoj izraz za . Proveri da li si ga dobro prepisao.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Prikačeni fajlovi
 
Odgovor na temu

zaricmica

Član broj: 184606
Poruke: 84
*.dynamic.isp.telekom.rs.



Profil

icon Re: Numericka metoda resavanja diferencijalnih jednacina18.09.2010. u 09:06 - pre 165 meseci
Tacan je izraz. Posto je Fg vertikalna kontaktna sila i zavisi od koeficijenata a,b,c,d,e i X1.
 
Odgovor na temu

[es] :: Matematika :: Numericka metoda resavanja diferencijalnih jednacina

Strane: 1 2 3

[ Pregleda: 9834 | Odgovora: 41 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.