Zadejte hledaný výraz...

Jak v QT vypočítat soustavu lineárních rovnic o třech neznámých?

kotajda
verified
rating uzivatele
(3 hodnocení)
11. 1. 2011 21:47:35
Dovedl by někdo poradit, jak v v QT udělat výpočet soustavy lineárních rovnic o třech neznámých. Pokoušel jsem se naprogramovat Gaussovu eliminační metodu, ale nějak se mi to nedaří.
Děkuji za případné rady
11. 1. 2011 21:47:35
https://webtrh.cz/diskuse/jak-v-qt-vypocitat-soustavu-linearnich-rovnic-o-trech-neznamych/#reply598957
Pavel Prostřední
verified
rating uzivatele
11. 1. 2011 22:03:36
Ahoj, pomohlo by ti to v Matlabu? Někde bych snad dohledal zdrojáky (kdyžtak napiš PM). Možná se zkus podívat po jiných numerických metodách. Gaussova nepatří k těm nejlepším. Přikládám Gauss-Seidelovu metodu v Matlabu ( neříkám, že to je nejefektivnější řešení:) ):
% Gauss-Seidelova metoda
% gauss_seidel(,',',0.01,200);
function = gaussseidel(A, b, x0, eps, max_iteraci);
%
% vstupní parametry:
% A - matice
% b - prava strana
% x0 - pocatecni aproximace
% eps - presnost
% max_iteraci - omezeni iteraci
%
A
b
x0
n = size(A,1);
x=x0;
iteraci=0;
nm_error=inf;
D=diag(diag(A));
L=tril(A)-D;
U=triu(A)-D;
H=-(L+D)U
g=(L+D)b
while ((nm_error > eps) & (iteraci < max_iteraci))
iteraci=iteraci+1;
x_new=H*x+g;
disp(sprintf('%d. iterace = , rozdil iteraci ',iteraci,x_new(1),x_new(1)-x(1)));
for i=2:n
disp(sprintf(' , ', x_new(i),x_new(i)-x(i) ));
end
disp(' ');
nm_error=norm(x_new-x);
x=x_new;
pause;
end
11. 1. 2011 22:03:36
https://webtrh.cz/diskuse/jak-v-qt-vypocitat-soustavu-linearnich-rovnic-o-trech-neznamych/#reply598956
V c++ jsem programoval výpočet rovnice o n neznámých pomocí gausovy eliminační metody. Tak jestli chceš poradit tak napiš.
11. 1. 2011 22:56:21
https://webtrh.cz/diskuse/jak-v-qt-vypocitat-soustavu-linearnich-rovnic-o-trech-neznamych/#reply598955
Pro odpověď se přihlašte.
Přihlásit