» »

Matrike mnozenje

Matrike mnozenje

Eliminator ::

Imam eno vprasanje glede mnozenja matrik... S pomocjo interneta mi je sicer uspelo napisat funkcijo za mnozenje 2 kvadratnih matrik, vendar mi algoritem ni cisto jasen. A bi mi ga lahko en malo razlozo..

Hvala za pomoc

void mnozenje(double matrika1[XX][XX],double matrika2[XX][XX], double v)
{     
     double zmnozena[XX][XX];
      
     for (int i=0; i<v; i++)
     {
         for (int j=0; j<v; j++)
         {
             zmnozena[i][j]=0;
             for(int k=0; k<v;k++)
             {
                zmnozena[i][j]+=matrika1[i][k]*matrika2[k][j];
            
             }
         }
         cout<<endl;
     }



P.S
Zakaj mora biti se tu ena for zanka, poleg for zank za vrstice in stolpce?

brodul ::

Ali ti je je jasno, kako se množi matrike (tudi nekvadratne) ?
Pretending to be a mature adult is so exhausting.

Eliminator ::

amm recimo da ja... Tak na pamet ne vem vendar ce pogledam formulo bi znal... Vem da more bit stevilo vrstic iz prve enako stevilu stolpcev iz druge

arjan_t ::

zato da dobiš:
C(0,0) = A(0,0)*B(0,0) + A(0,1)*B(1,0) + A(0,2)*B(2,0)
itd.

Eliminator ::

aha.. Sedaj pa se imam tezavo pri potenciranju matrike... Naredil sem da eno matriko pomnozim samo z sabo... Sedaj pa ne vem kako bi naredil, da se ta matrika pomnozi sama z sabo tolikokrat koliko je potenca... Prosim za pomoc :D

Eliminator ::

Eliminator je izjavil:

aha.. Sedaj pa se imam tezavo pri potenciranju matrike... Naredil sem da eno matriko pomnozim samo z sabo... Sedaj pa ne vem kako bi naredil, da se ta matrika pomnozi sama z sabo tolikokrat koliko je potenca... Prosim za pomoc :D


A lahko kdo pove prosim ? :D

overlord_tm ::

Eliminator je izjavil:

aha.. Sedaj pa se imam tezavo pri potenciranju matrike... Naredil sem da eno matriko pomnozim samo z sabo... Sedaj pa ne vem kako bi naredil, da se ta matrika pomnozi sama z sabo tolikokrat koliko je potenca... Prosim za pomoc :D



imas matriko A. Pomnozis jo samo s sabo da dobis matriko A2. Potem matriko A2 pomnozis z A da dobis A3. A3 pomnozis z A da dobis A4. Seveda potem obstaja veliko optimizacij takega algoritma, ampak to je najbol naivna implementacija.

Eliminator ::

Ja samo ne razumem kako bi to napisal v programu...

za mnozenje imam kodo zdaj tak
     for (int i=0; i<vel; i++)
     {
         for (int j=0; j<vel; j++)
         {
             AB[i][j]=0;
             for (int k=0; k<vel; k++)
             {
                 AB[i][j]+=A[i][k]*B[k][j];

             }
             cout<< AB[i][j]<<" ";
         }
         cout<<endl;
     }


sedaj mi ni jasno kako bi še enkrat pomnozil z isto matriko in kako bi potem nastavil, da se tolikokrat mnozi sama za sabo, kot je potenca, ki jo vnese uporabnik(recimo 6 --> da se 6x pomozi sama z sabo)

genesiss ::

Rekurzija ali zanke.

amacar ::

zanka, ki gre od 1 do velikosti potence

Eliminator ::

Ja sem probal delat nekaj z se eno for zanko, ki tece od 1 pa do velikosti potence, vendar nikoli nisem dobil pravega rezultata. Mogoce nisem vstavil na pravo mesto to for zanko? A lahko prosim kdo napise kam morem vstavit to for zanko oz. ce lahko kdo napise primer, da vidim kako more zgledat.

Hvala za pomoc

amacar ::

Pošlji mi mail na amadej.pevec@gmail.com pa ti pošljem moj program (naloga N20 :-)). Sem pa 1. letnik na feriju, smer rit.

Drugače pa to for zanko moraš imeti pred tem ko kličeš funkcijo za množenje matrik.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Matrike

Oddelek: Šola
121630 (1213) Sqrt2
»

Strassenovo množenje matrik

Oddelek: Programiranje
102172 (1913) eXoo
»

Program v C

Oddelek: Programiranje
51926 (1765) darkkk
»

Grafična kartica s štirimi gigabajti

Oddelek: Novice / Grafične kartice
234227 (2715) Senitel
»

mnozenje matrik

Oddelek: Programiranje
194729 (4391) Vesoljc

Več podobnih tem