Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 17. 11. 2013 14:34

Tscar
Příspěvky: 77
Reputace:   
 

Matlab - indexování

Dobrý den,

píši v Matlabu program na výpočet soustavy lineárních rovnic pomocí Jacobiho metody http://en.wikipedia.org/wiki/Jacobi_method
a cykl bych chtěl zapsat v maticové podobě (ne přes elementy). Věděl byste někdo, jak indexovat celý vektor? Pokud napíšu v(i), bere Matlab v potaz i-tý prvek vektoru v a rozměry matic nesouhlasí.

Předem díky.

Offline

 

#2 17. 11. 2013 14:44

Creatives
Příspěvky: 610
Škola: UP MAT-EKO(09-12, Bc.)
Pozice: Student
Reputace:   26 
 

Re: Matlab - indexování

↑ Tscar:
Chceš jako vybrat  " i - tý "  sloupec z matice " A " ?
Pokud ano, tak A(:,i)

Offline

 

#3 17. 11. 2013 15:23

Tscar
Příspěvky: 77
Reputace:   
 

Re: Matlab - indexování

Ne, to ne.
Ten vzorec vypadá takhle:
x = inv(D)*(b-R*x)
, kde x a b je sloupcovej vektor a D a R jsou odpovídající čtvercové matice. A já ten vektor x nejprve zadám (třeba samý jedničky) a z toho tím vzorcem vypočítám novej vektor x a ten novej do toho vzorce chci dosadit zpátky a spočítat zase další .. no a to tak dlouho, dokud to nebude odpovídat nějaký přesnosti.
A otázka je jak to zaindexovat. Jakmile napíšeš x(i), už to nebere nějakej vektor xi, ale bere to skalár na i-tý pozici vektoru x.

Offline

 

#4 17. 11. 2013 15:56 — Editoval Creatives (17. 11. 2013 15:57) Příspěvek uživatele Creatives byl skryt uživatelem Creatives.

#5 17. 11. 2013 16:01 — Editoval Creatives (17. 11. 2013 16:03)

Creatives
Příspěvky: 610
Škola: UP MAT-EKO(09-12, Bc.)
Pozice: Student
Reputace:   26 
 

Re: Matlab - indexování

↑ Tscar:

Mělo by to jít takhle:

x2=inv(D)*(b-R*x1) pomůže to?

Offline

 

#6 17. 11. 2013 16:08

Tscar
Příspěvky: 77
Reputace:   
 

Re: Matlab - indexování

↑ Creatives:
Potřebuju tam zakompletovat nějakej for cyklus, což znamená indexovat. Jak ty píšeš to nejde.

Offline

 

#7 17. 11. 2013 16:15

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Matlab - indexování

Tscar napsal(a):

Potřebuju tam zakompletovat nějakej for cyklus, což znamená indexovat.

říká kdo? proč bys v cyklu nemohl použít přímo x = inv(D)*(b-R*x)?

Offline

 

#8 17. 11. 2013 17:35

Tscar
Příspěvky: 77
Reputace:   
 

Re: Matlab - indexování

↑ Stýv:
Pak mi něco uniká .. ale proto jsem nakonec tady.
Můžu se teda zeptat jak na to?

Offline

 

#9 17. 11. 2013 17:47 — Editoval Creatives (17. 11. 2013 17:48) Příspěvek uživatele Creatives byl skryt uživatelem Creatives.

#10 17. 11. 2013 19:23 — Editoval Creatives (17. 11. 2013 22:36)

Creatives
Příspěvky: 610
Škola: UP MAT-EKO(09-12, Bc.)
Pozice: Student
Reputace:   26 
 

Re: Matlab - indexování

↑ Tscar:
Něco jsem zkoušel a taky hledal, ale bohužel nedařilo se.

Nejblíž jsem byl tady, ale bohužel nefunguje, xi chápe, ale xy nechápe....
x1=[1;1]

for i=2:5
y=i-1
xi=xy.*[1;2]
end




jinak můžeš zkusit vyhledat už hotový m file, určitě najdeš :)

Offline

 

#11 17. 11. 2013 20:34

Tscar
Příspěvky: 77
Reputace:   
 

Re: Matlab - indexování

↑ Creatives:

Taky jsem nepochodil. Každopádně díky za ochotu. Poptám se na cviku a když budu mít úspěch, postnu sem řešení.

Offline

 

#12 17. 11. 2013 21:19

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Matlab - indexování

↑ Tscar: nerad se opakuju, tak si znovu přečti můj post, je to tam napsaný

Offline

 

#13 17. 11. 2013 21:43

Creatives
Příspěvky: 610
Škola: UP MAT-EKO(09-12, Bc.)
Pozice: Student
Reputace:   26 
 

Re: Matlab - indexování

↑ Stýv:
Vůbec jsem si tvého příspěvku nevšiml, a já nad tím strávil minimálně hodinu :D
Jsi dobrej.

Offline

 

#14 17. 11. 2013 22:25

Tscar
Příspěvky: 77
Reputace:   
 

Re: Matlab - indexování

↑ Stýv:
Myslíš "říká kdo? proč bys v cyklu nemohl použít přímo x = inv(D)*(b-R*x)?"
A jak bys do toho zadal, že to chceš nechat proběhnout třeba 50x?

Offline

 

#15 17. 11. 2013 22:29

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Matlab - indexování

↑ Tscar: for i=1:50

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson