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
Mám příklad
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
↑ pasecak:
Nepoznám technické detaily Matlabu, ale algoritmicky môžem poradiť...
- Ja by som to nahádzal do jedného cyklu...
- Tam kde robíš , asi malo byť
a bude tam asi problém, pretože keď bude
tak budeš na aký index zapisovať?
- No a diagonála sa mala nastavovať, až posledná, keďže v druhom cykle by si si na mieste
prepísal
Offline
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