Matematické Fórum


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

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

#1 13. 10. 2011 01:06

gotris
Zelenáč
Příspěvky: 6
Reputace:   
 

wxmaxima matice

Dobrý den,
mám prosbu, jakým příkazem získám z matice řádky ? Pro další trigonometrickou úpravu potřebuji přepsat matici do řádků, nechci však tyto řádky pouze opsat. V českých návodech na netu jsem pomoc nenašel a v helpu jsem hledal, ale bohužel bezvýsledně.
Mockrát děkuji za radu ;-)

http://forum.matweb.cz/upload3/img/2011-10/60502_wxmaxima.JPG

Offline

 

#2 13. 10. 2011 17:34

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

Re: wxmaxima matice

Pokud je matice M, pak první řádek matice je M[1], druhý řádek M[2].

Například položka která se nalézá v druhém řádku a třetím sloupci je
polozka: M[2][3]

Jinak můžeš také použít příkaz row, druhý řádek matice M je
row(M,2)

obdobně třetí sloupec je
col(M,3)

Pokud potřebuješ z rovnice eq vzít pouze levou stranu pak je to příkaz lhs(eq), pravá strana je obdobně rhs(eq)

Můžeš i dělit výrazy příkazem part ...

Pokud chci sečíst všechny položky v pátém řádku matice napíšu apply("+",M[5]), obdobně vynásobím je příkazem apply("*".M[5]), výsledkem pochopitelně už není matice, ale výraz.

pokud chci převést seznam například:

L: [[b,-c,a],[c,u,l],[g,h,l]];

na matici, udělám to takto:

M: apply(matrix,L);


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

#3 13. 10. 2011 18:55

gotris
Zelenáč
Příspěvky: 6
Reputace:   
 

Re: wxmaxima matice

Děkuji ;-)

Offline

 

#4 13. 10. 2011 20:33

gotris
Zelenáč
Příspěvky: 6
Reputace:   
 

Re: wxmaxima matice

Ještě moc prosím, jak sečtu sloupce v matici?
Děkuji

Offline

 

#5 14. 10. 2011 17:47 — Editoval mák (14. 10. 2011 18:01)

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

Re: wxmaxima matice

Příkazem transpose vyměníme řádky za sloupce a pak stejně jako u sečtení řádku (pro první sloupec):

apply("+",transpose(M)[1]);

nebo si můžeš udělat funkce:

pro sečtení řádků:

Code:

secti_radky(M) := block([r,c,R,i,j],
    [r,c]: matrix_size(M),
    R: makelist(0,i,1,r), 
    for j:1 thru c do (
        for i:1 thru r do (
            R[i]: R[i]+M[i][j]
        )        
    ),
    R
);

případně sloupců:

Code:

secti_sloupce(M) := block([r,c,S,i,j],
    [r,c]: matrix_size(M),
    S: makelist(0,i,1,c), 
    for i:1 thru r do (
        for j:1 thru c do (
            S[j]: S[j]+M[i][j]
        )        
    ),
    S
);

pak zavoláš příslušnou funkci s názvem matice jako parametr (ale nezkoušel jsem, snad to bude chodit :-) )


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

#6 14. 10. 2011 22:40

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

Re: wxmaxima matice

Sečtení všech řádků:

Code:

apply("+",subst("[",matrix,M));

Sečtení všech sloupců:

Code:

apply("+",subst("[",matrix,transpose(M)));

Sečtení všech řádků i sloupců:

Code:

apply("+",list_matrix_entries(M));

LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson