Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Calcolo Matrice Inversa (in Turbo Pascal)

    Ciao,avete mai provato a fare una matrice inversa in pascal?per chi non ne ha mai sentito parlare ecco un link dove spiega cos'è:http://math.ec.unipi.it/algebra/matric/invmat1.htm

    io per fare la matrice inversa ho iniziato caricando la matrice,calcolare il determinante,calcolare la matrice trasposta ed ora dovrei calcolare la matrice aggiunta ma qui ho trovato qualche problema...qualcuno di voi mi puo aiutare?
    vi scrivo il codice che ho fatto fino ad ora:

    program matr_inve;
    const dim:=5;
    type matrice=array[1..dim,1..dim] of integer;
    var nx,det:integer;m,m1:matrice;scelta:boolean;

    Procedure carica(var nx:integer;var m:matrice);
    var i,J:integer;
    begin
    REPEAT
    writeln('inserisci le dimensioni della matrice'),
    readln(nx),
    UNTIL (nx>1) and (nx<4);
    for I:=1 to nx do
    for J:=1 to nx do
    begin
    writeln('inserisci l''èlemento in posizione ',I,'-',J);
    readln(m[I,J]);
    end;
    end;
    Procedure determinante(nx:integer;m:matrice);
    var I.J,det:integer;
    begin
    if (dim=2) then
    det:=m[1,1]*m[2,2]-(m[2,1]*m[1,2])
    else begin
    det:=m[1,1]*m[2,2]*m[3,3]+m[1,2]*m[2,3]*m[3,4]+m[1,3]*m[2,4]*m[3,5];
    det:=det-(m[3,1]*m[2,2]*m[1,3]+m[3,2]*m[2,3]*m[1,4]+m[3,3]*m[2,4]*m[1,5];
    end;
    end;
    Procedure trasposta(m:matrice;var m1:matrice;dim:integer);
    var I,J:integer;
    begin
    for I:=1 to nx do
    for J:=1 to nx do
    m1[I,J]:=m[J,I];
    end;
    (ora dovrei fare la procedura della matrice aggiunta,qualcuno mi puo aiutare?)grazie anticipatamente per l'aiuta
    ciao....

  2. #2

    Re: Calcolo Matrice Inversa (in Turbo Pascal)

    Originariamente inviato da skizzofrenico
    Ciao,avete mai provato a fare una matrice inversa in pascal?
    ....................
    Sì , un pò di tempo addietro, ma lo feci
    risolvendo il sistema AX=I (dove X è l'inversa) con il metodo di eliminazione
    di Gauss che , da quanto ricordo, non è particolarmente complesso
    da programmare

  3. #3
    siccome tu gia l'hai fatto mi puoi dire se il codice che foni ad ora ho fatto è giusto?io parlavo della procedura per la matrice aggiunta,come saprai per calcolare la matrice aggiunta per ogni suo elemento si esclude la sua colonna e la sua riga e gli elementi restanti si calcola il determinante e il risultato è un elemento della matrice inversa giusto?io non so come impostare la procedura aggiunta avevo pensato a creare nella stessa procedura una matrice minore che sarebbe il risultato dello scarto della riga e della colonna per ogni elemento,oppure dovrei "giocare sugli indici I,J ma tu l'hai fatta?

  4. #4
    Originariamente inviato da skizzofrenico
    siccome tu gia l'hai fatto mi puoi dire se il codice che foni ad ora ho fatto è giusto?
    No.... mi spiace ma ho già abbastanza da fare con i miei problemi
    e ,come ti ripeto, la questione risale ad un certo numero di anni
    addietro come anche lo studio delle matrici.

    Originariamente inviato da skizzofrenico
    io parlavo della procedura per la matrice aggiunta
    ..............
    ma tu l'hai fatta?
    ...non ricordo di aver mai calcolato l'aggiunta, ma alla fine mi sembra
    che il problema si riduca al calcolo di un determinante
    che feci sempre utilizzando il metodo di Gauss (... o quello molto simile del pivot ?)
    rendendo la matrice triangolare superiore o inferiore.

    EDIT

    opss.. ... scusa ma ho visto solo ora il calcolo del determinante
    e forse ti ho parlato di cose che non conosci;
    ...ma se riesci a farlo per una matrice generica
    il professore sarà contento


  5. #5
    si per la matrice generica l'ho fatto ora ho solo questo problema della matrice aggiunta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.