Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Determinanta, reda n Kod za nju!!!

[es] :: Art of Programming :: Determinanta, reda n Kod za nju!!!

[ Pregleda: 4331 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vaske555
Milan Vasic
Stari Zednik

Član broj: 42246
Poruke: 79
62.108.120.*

ICQ: 287637844
Sajt: www.milanvasic.com


Profil

icon Determinanta, reda n Kod za nju!!!25.01.2005. u 23:31 - pre 234 meseci
Da li neko kojim slucajem ima kod u paskalu za racunanje determinante matrice,
ili mozda u moduli2? bilo bi mi od velike koristi!!!
HVALA
Vaske
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.041net.co.yu.



Profil

icon Re: Determinanta, reda n Kod za nju!!!26.01.2005. u 00:55 - pre 234 meseci
Ovo bi trebalo da ti reši problem…

Code:

program Determinanta;

var
    i, j, n, det, prod : integer;
    mat : array [0..99, 0..99] of integer;

begin
    det:= 0;

    write('Unesi n: ');
    read(n);

    for i:= 0 to n-1 do
        for j:= 0 to n-1 do
            begin
                write('Unesi element [', i, ',', j, ']: ');
                read(mat[i,j]);
            end;
    
    for i:= 0 to n-1 do
        begin
            prod:= 1;
            for j:= 0 to n-1 do
                prod:= prod * mat[(i+j) mod n, j];
            det:= det + prod;
        end;
    for i:= 0 to n-1 do
        begin
            prod:= 1;
            for j:= 0 to n-1 do
                prod:= prod * mat[(i+j) mod n, n-1-j];
            det:= det - prod;
        end;

    writeln('Determinanta je: ', det);
end.
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.blueisp.co.yu.



+3 Profil

icon Re: Determinanta, reda n Kod za nju!!!26.01.2005. u 00:56 - pre 234 meseci
U cemu je problem da sam implementiras algoritam za izracunavanje (sam algoritam je prilicno straigthforward, nema nikakvih komplikacija). Pokusaj sam da odredis neku determinantu reda veceg od 3 i posle nekoliko pokusaja sve sto radis prevedi u paskal (ili bilo koji drugi omiljeni programski jezik).
Owl
 
Odgovor na temu

Marko Stankovic

Član broj: 11
Poruke: 306
*.rvkds.net.



Profil

icon Re: Determinanta, reda n Kod za nju!!!26.01.2005. u 14:30 - pre 234 meseci
Alef to ce resiti problem samo ukoliko imamo matrice 3x3, za sve dimenzije preko 3 ovaj algoritam koji si ti upotrebio je beskoristan.
Iskreno nije bas tako jednostavno uraditi kod za racunanje determinante jer je malo teze (bar je meni bilo) uraditi kod koji ce vrsiti sumiranje po svim mogucim permutacijama uz to vodeci racuna o broju inverzija (znaci racunanje po definiciji determinante). Resenje koje sam ja koristio je bilo da prvo Gausovim algoritmom svedemo matricu na trougaonu i determinanta je tada samo proizvod elemenata na glavnoj dijagonali.
Ja imam taj kod jos uvek ali je pisan u C-u, pa ako te interesuje da bacis pogled na njega ostavicu ga ovde, mada ne bi trebalo da bude problem da se prepravi da radi i u pascalu.
I drink to make other people interesting.
 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.com
Via: [es] mailing liste



+1 Profil

icon Re: Determinanta, reda n Kod za nju!!!26.01.2005. u 15:22 - pre 234 meseci
Koliko se ja secam linearne algebre, determinanta se racuna
rekurzivno, po minorima matrice. Resenje je sve samo ne efikasno, ali
100% radi. Optimizuje se analiziranjem matrice i njenim svodjenjem na
neki od pogodnijih oblika, ako je to moguce.

Pogledajte neku knjigu iz linearne algebre pa cete sigurno skontati
kako se to radi.


--
Until Eve arrived, this was a man's world. -- Richard Armour
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.041net.co.yu.



Profil

icon Re: Determinanta, reda n Kod za nju!!!26.01.2005. u 16:47 - pre 234 meseci
Citat:

Marko: to ce resiti problem samo ukoliko imamo matrice 3x3


Jup… Tačno tako… Potpuno sam smeo s uma da to važi samo za matrice čije su dimenzija 3x3, a nisam čoveku hteo da komplikujem život sa Gausom . No i ovako nisam ništa uradio .

Ako se ne snađeš sa Markovim kodom, javi pa ću ti prebaciti u Pascal.
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.041net.co.yu.



Profil

icon Re: Determinanta, reda n Kod za nju!!!26.01.2005. u 21:19 - pre 234 meseci
Evo, malo sam se igrao , ovo bi trebalo da radi (ukoliko opet nisam
nešto prevideo ).

Code:

program Determinanta;

var
    n, sign: integer;
    det, err : real;
    mat : array [1..100, 1..100] of real;



procedure input;
var
    i, j : integer;
begin
    write('Unesi n: ');
    read(n);

    for i:= 1 to n do
        for j:= 1 to n do
            begin
                write('Unesi element [', i, ',', j, ']: ');
                read(mat[i,j]);
            end;
end;



procedure swap_rows(a, b : integer);
var
    tmp : real;
    i : integer;
begin
    for i:= a to n do
        begin
            tmp:= mat[a,i];
            mat[a,i]:= mat[b,i];
            mat[b,i]:= tmp;
        end;
    sign:= sign * (-1);
end;



procedure eliminate(a, b : integer);
var
    d : real;
    i : integer;
begin
    d:= mat[b,a] / mat[a,a]; 
    for i:= a to n do
        mat[b,i]:= mat[b,i] - d*mat[a,i];
end;



procedure gauss;
var
    i, j : integer;
begin
    for i:= 1 to n-1 do
        begin
            j:= i+1;
            while (abs(mat[i,i]) < err) do
                begin
                    swap_rows(i, j);
                    Inc(j);
                    if (j > n) then break;
                end;
            if (j <= n) then for j:= i+1 to n do eliminate(i, j);
        end;

    for i:= 1 to n do
        det:= det * mat[i,i];
end;



Begin
    det:= 1.0;
    sign:= 1;
    err:= 0.000001;

    input();
    gauss();

    writeln('Determinanta je: ', det*sign);
End.

 
Odgovor na temu

vaske555
Milan Vasic
Stari Zednik

Član broj: 42246
Poruke: 79
62.108.120.*

ICQ: 287637844
Sajt: www.milanvasic.com


Profil

icon Re: Determinanta, reda n Kod za nju!!!29.01.2005. u 12:19 - pre 234 meseci
E ljudi puno hvala na sugestijama, ne mogu da verujem da ste tako azurni!!!
Mnogo ste mi pomogli narocito se zahvaljujem Alef-u, Veliko HVALA!!!
Vaske
 
Odgovor na temu

[es] :: Art of Programming :: Determinanta, reda n Kod za nju!!!

[ Pregleda: 4331 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.