Jeg har vært på utkikk etter en funksjon som hjelper meg å få den sammenhengende matrisen til en gitt en, jeg fant ut at du kan få kofaktorene til en matrise, men bare ved å bruke «Combinatorica» -pakken, som jeg ikke kunne få.
Hvis du kjenner en kommando, eller hvis du kjenner effektive måter å lage en funksjon som gjør dette, kan du hjelpe meg.
Kommentarer
Svar
Dette er bare for å få svar på posten så spørsmålet kan fjernes fra listen som ikke er besvart.
Følgende er hentet fra et eksempel gitt i delen Søknad i dokumentasjonen for Minors
.
Definer tillegget til en matrise:
adj[m_] := Map[Reverse, Minors[Transpose[m], Length[m] - 1], {0, 1}] * Table[(-1)^(i + j), {i, Length[m]}, {j, Length[m]}]
Kommentarer
- Bra gjort . Men du ' tar feil: spørsmålet blir fjernet fra den ubesvarte bunken først etter at den har oppstemt svar. Vent … nå ' har rett 🙂
- Jeg er klar over at det er en risiko involvert, men vanligvis er det noen villige å ta agnet 🙂
- Vi ' er alt for representanten her 🙂
- @belisarius. Rep? Hvilken representant? Dette er pro bono work (CW).
- Det var grunnen til smilen min!
Svar
Her er et enklere svar:
adj[m_] := Inverse[m] Det[m]
Kommentarer
- Pent gjort. $ \ phantom {} $
- Dette fungerer bare for firkantede matriser. klassisk tilknytning (også kalt adjugat) kan defineres for matriser av alle dimensjoner, og svaret ovenfor av @m_goldberg er den riktige måten å gjøre det for ikke -kvadratmatriser.
- Og fungerer bare hvis det omvendte eksisterer.
- @MichaelSeifert Fungerer det aksepterte svaret for deg på ikke-kvadratiske matriser? Det ' t for meg. Jeg tror at ' s fordi termene {i, lengde [m]} og {j, lengde [m]} ender opp med en firkantet tabell.
Minors[]
, under " Programmer "