Przestrzenie wektorowe, bazy, liniowa niezależność, macierze.... Formy kwadratowe, twierdzenia o klasyfikacji...
hobbitek
Użytkownik
Posty: 3 Rejestracja: 4 gru 2010, o 22:34
Płeć: Mężczyzna
Lokalizacja: Kraków
Post
autor: hobbitek » 5 gru 2010, o 08:53
Mam takie równanie \(\displaystyle{ AX=B}\)
\(\displaystyle{ A = \begin{bmatrix} 6 & -4 & 1 \\ -4 & 6 & -4 \\ 1 & -4 & 6 \end{bmatrix} \\ B = \begin{bmatrix}2 & 19 & 19 \\ -8 & -26 & -16 \\ 17 & 29 & 9 \end{bmatrix}}\)
do wyliczena macierz \(\displaystyle{ X}\)
czy jest inny sposob niz wyliczenie tego z \(\displaystyle{ X=A^{-1}B}\)
mam napisac funkcje w octavie i ta metoda to dluga funkcja sie tworzy
Ostatnio zmieniony 5 gru 2010, o 11:23 przez
M Ciesielski , łącznie zmieniany 1 raz.
Powód: Nieczytelny zapis - brak LaTeX-a. Proszę zapoznać się z instrukcją: http://matematyka.pl/latex.htm .
miodzio1988
Post
autor: miodzio1988 » 5 gru 2010, o 11:41
Ale odwracać możesz jakąś funkcją wbudowaną? Jeśli tak to jedna linijka kodu (chcesz to Ci napiszę w Matlabie). Jeśli bez funkcji wbudowanej to można rozwiąć \(\displaystyle{ 3}\) układy równań np metodą Gaussa z częściowym wyborem elementu głównego
hobbitek
Użytkownik
Posty: 3 Rejestracja: 4 gru 2010, o 22:34
Płeć: Mężczyzna
Lokalizacja: Kraków
Post
autor: hobbitek » 5 gru 2010, o 18:30
nie moge korzystac z funkcji wbudowanych;/ a moglbys mi napisac algorytm do tej metody gausa??
miodzio1988
Post
autor: miodzio1988 » 5 gru 2010, o 19:55
Ukryta treść:
Kod: Zaznacz cały
function x = gauss_elim ( A, b )
[nrow ncol] = size ( A );
if ( nrow ~= ncol )
disp ( 'gauss_elim error: Square coefficient matrix required' );
return;
end;
nb = length ( b );
if ( nrow ~= nb )
disp ( 'gauss_elim error: Size of b-vector not compatible with matrix dimension' )
return;
end;
x = zeros ( 1, nrow );
for i = 1 : nrow - 1
if ( A(i,i) == 0 )
t = min ( find ( A(i+1:nrow,i) ~= 0 ) + i );
if ( isempty(t) )
disp ( 'gauss_elim error: A matrix is singular' );
return
end;
temp = A(i,:); tb = b(i);
A(i,:) = A(t,:); b(i) = b(t);
A(t,:) = temp; b(t) = tb;
end;
for j = i+1 : nrow
m = -A(j,i) / A(i,i);
A(j,i) = 0;
A(j, i+1:nrow) = A(j, i+1:nrow) + m * A(i, i+1:nrow);
b(j) = b(j) + m * b(i);
end;
end;
x(nrow) = b(nrow) / A(nrow, nrow);
for i = nrow - 1 : -1 : 1
x(i) = ( b(i) - sum ( x(i+1:nrow) .* A(i, i+1:nrow) ) ) / A(i,i);
end;
Teraz rozwiązując
\(\displaystyle{ n}\) takich układów równań dostajesz macierz odwrotną. To też trzeba zrobić, ale to już masz zrobić sam
Ostatnio zmieniony 5 gru 2010, o 20:11 przez miodzio1988 , łącznie zmieniany 1 raz.
hobbitek
Użytkownik
Posty: 3 Rejestracja: 4 gru 2010, o 22:34
Płeć: Mężczyzna
Lokalizacja: Kraków
Post
autor: hobbitek » 5 gru 2010, o 20:10
to zadanie mozna inaczej zrobic
metoda eleminacji pelnej Gaussa-Jordana
miodzio1988
Post
autor: miodzio1988 » 5 gru 2010, o 20:12
No można. To jest Twoje zadanie więc rób jak chcesz