Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

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

#1 29. 11. 2015 20:07

MateSl
Zelenáč
Příspěvky: 10
Reputace:   
 

Matlab - loop pomocí for

Ahoj,

snažím se Matlabu naprogramovat algoritmus na vyřešení vlastních tvarů konstrukce (otázka dynamiky stavebních konstrukcí). Mám definovaný cyklus:

//forum.matweb.cz/upload3/img/2015-11/23666_Matlab.JPG

Tento cyklus bych chtěl, aby mi počítal 2. až 5. vlastní tvar konstrukce (1. již znám a používám ho pro výpočet druhého /fi1/) - jenže k tomu potřebuju vždy předchozí vlastní tvar (pro 5. vlastní tvar tedy potřebuji znát předešle 4), viz následující obrázek:

//forum.matweb.cz/upload3/img/2015-11/23918_Matlab_2.JPG

Nevíte někdo, jak to vyřešit? Samozřejmě bych mohl skript zkopírovat 5x za sebe a vždy doplnit řádku s konstantou c(p), pokud bych měl ale více než 5 vlastních tvarů, nebylo by takové řešení už příliš elegantní.

Děkuji za odpovědi!
MateSl

Offline

 

#2 29. 11. 2015 22:54

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 920
Reputace:   63 
 

Re: Matlab - loop pomocí for

Zdravím,
problém bych rozdělil na více částí (obecně):
- vytvořil bych samostatnou funkci pro jeden tvar.
- funkci zavolám ve smyčce a pomocí indexu by si přečetl parametry pro funkci, která se provede a výsledek se zapíše do stejného pole ale o vyšším indexu 
- smyčka inkrementuje index a pokud nebude na konci, vrátí se na předcházející bod
- program skončil a v poli jsou vypsány všechny tvary srovnané podle indexu


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

#3 30. 11. 2015 13:39

MateSl
Zelenáč
Příspěvky: 10
Reputace:   
 

Re: Matlab - loop pomocí for

↑ mák:

Ahoj,
děkuju za reakci. Nicméně v matlabu jsem naprostý začátečník - včera jsem to zapnul prvně - a právě na problém s indexováním jsem ještě nepřišel. Když to zapíšu normálně matematicky, tak bych potřeboval v závislosti na parametru $p = (2, 3, 4, 5)$ zjišťovat funkce ve tvaru $c_{p} = fi_{p}^{-1} * M * x_0$, ze které by se následně počítal vektor $x_{0,p} = x_0 - \sum_{p=2}^{5}c_p * fi_p$.

Opravdu ale netuším, jak tohle zapsat v syntaxi matlabu. (?) Včera jsem strávil spoustu času hledáním, ale moc mi to nepomohlo.

MateSl

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson