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 30. 04. 2013 19:20 — Editoval pasecak (30. 04. 2013 19:20)

pasecak
Příspěvky: 29
Reputace:   
 

[MATLAB] Matice-Gaussova eliminace

Mám příklad
http://t3.pixhost.org/thumbs/3258/16732900_ma3.jpg
Buď jsem to už všechno zapoměl nebo jsem fakt dutej ale nedokážuani nadefinvoat tu matici.
Zatím mám toto:

function  A=definice_matice (n)
A=zeros(n);
for i=1:n
    A(i,i)=4;
end
for i=1:n
    A(i,n)=1;
    A(i+2,n);
end
end

ale je to určitě špatně...prosím vás tedy o radu jak na tento příklad nahlížet a jak ho vyřešit...nechci ho udělat...chci poradit a navést k správnému výsledku.

Děkuji

Offline

 

#2 01. 05. 2013 11:20 — Editoval hradecek (01. 05. 2013 11:22)

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: [MATLAB] Matice-Gaussova eliminace

↑ pasecak:
Nepoznám technické detaily Matlabu, ale algoritmicky môžem poradiť...

- Ja by som to nahádzal do jedného cyklu...
- Tam kde robíš $i+2$, asi malo byť $=2$ a bude tam asi problém, pretože keď bude $i == n$ tak budeš na aký index zapisovať?
- No a diagonála sa mala nastavovať, až posledná, keďže v druhom cykle by si si $4$ na mieste $[n,n]$ prepísal $1$


Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

#3 06. 05. 2013 19:49

pasecak
Příspěvky: 29
Reputace:   
 

Re: [MATLAB] Matice-Gaussova eliminace

Nějak jsem to pořešil....prosím tedy o kontrolu spránosti. Děkuji

Matice A převedená na řídkou matici B a vektor pravé strany b:

m=100;
n=m;
A=zeros(m,n);
for i=1:n-2
    A(i+2,i)=2;
    for i=1:n-1
        A(i,n)=1;
        for i=1:n
            A(i,i)=4;
        end
    end
end
B=sparse(A)
b=ones(m,1)


Funkce na gausovu eliminaci a výpočet výsledku:

function x=GE (B,b)
[m,n]=size (B);
for j=1:m-1
    for i=j+1:m
        if B(j,j)==0
            disp ('Deleni nulou-nelze provest GaussEl')
        else
        B(i,j)=B(i,j)-(B(i,j)/B(j,j))*B(j,j);
        end
        b(i)=b(i)-B(i,j)*b(j);
    end
end

B\b
end

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson