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
Stránky: 1
Zdravim,
mam problem s vypoctem inverzni matice. Snazim se to pocitat pres adjungovanou matici. Mam metodu pro determinant, takze potebuji jen algoritmus pro vynechani radku a sloupce, abych mohl spocitat prislusny determinant a dosadil jej do matice na urcene misto, ale nejak sna to nemuzu prijit. Diky predem za jakoukoliv radu :-)
Offline
Podle toho co jsme tak priblizne delali a nedelali, by to melo bejt cyklem, rekurzi, polema...jednou z tech moznosti. Pokousim se to nejak pres cykly a zda se mi, ze tohle mam snad dobre, ale furt to nefunguje.
a je rozmer ctvercove matice
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
for (int u = 0; u < a; u++) {
for (int v = 0; v < a; v++) {
if (u == i) {
u++;
}
if (v == j) {
v++;
}
submatice[i][j] = maticeA[u][v];
vypocetdeterminant(submatice, a - 1);
maticeA[i][j] = det;
}
}
}
}Offline

Zda se mi, ze v tom cyklu si prepisujes tu puvodni matici timto: "maticeA[i][j] = det;", to znamena, ze pak tady: "submatice[i][j] = maticeA[u][v];" beres nektere hodnoty z te inverzni matice misto z te puvodni.
Dale tam podle me mas trochu zamotane ty indexy, potrebujes nejdriv ziska celou tu submatici, a pak pocitat determinant (A to provest pro celou puvodni matici).
Napsal bych to spis takhle, ale netestoval jsem to:
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
int m = 0;
for (int u = 0; u < a - 1; u++, m++) {
int n = 0;
for (int v = 0; v < a - 1; v++, n++) {
if (m == i) {
m++;
}
if (n == j) {
n++;
}
submatice[u][v] = maticeA[m][n];
}
}
vypocetdeterminant(submatice, a - 1);
maticeB[i][j] = det;
}
}
}Offline

↑ medic911:
To a by mela byt velikost matice.
Offline
Stránky: 1