„Mátrix (matematika)” változatai közötti eltérés
[nem ellenőrzött változat] | [nem ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
Egy példája C programnyelven megírt mátrix-szorzásnak |
a áthelyezés külön szakaszba |
||
200. sor:
\end{matrix},</math>
ahol például az eredménymátrix 5-ös elemét úgy kaptuk, hogy a sorában lévő (1,0,2) elemeket páronként összeszoroztuk az oszlopában lévő (3,2,1) elemekkel, majd összeadtuk őket.
===C nyelvű kódpélda===
Két mátrix összeszorzásának kódja [[ C (programozási nyelv)|C]]-ben:
<nowiki>#</nowiki>include <stdio.h>
<nowiki>#</nowiki>include <stdlib.h>
double A[1000][1000];
double B[1000][1000];
double AB[1000][1000];
int main () {
int m, n, k; //m-oszlop, n-sor (k-oszlop)
int i, j, p;
int sum=0;
printf("A matrix merete: ");
scanf("%d%d",&n, &m);
printf("B matrix oszlopai: ");
scanf("%d", &k);
printf("B matrix sorainak szama igy: %d\n", m);
printf("Adja meg az A matrixot:\n");
for (i=0; i<n; i++) //A matrix feltoltese
{
for(j=0; j<m; j++)
scanf("%lf", &A[i][j]);
}
printf("Adja meg a B matrixot:\n");
for (i=0; i<m; i++) //B matrix feltoltese
{
for(j=0; j<k; j++)
scanf("%lf", &B[i][j]);
}
printf("A matrix:\n");
for (i=0; i<n; i++) //A matrix kiiratasa
{
for(j=0; j<m; j++)
printf("%0.5lf ", A[i][j]);
printf("\n");
}
printf("B matrix:\n");
for (i=0; i<m; i++) //B matrix kiiratas
{
for(j=0; j<k; j++)
printf("%0.5lf ", B[i][j]);
printf("\n");
}
for ( i = 0 ; i < n ; i++ )
{
for ( j = 0 ; j < k ; j++ )
{
for ( p = 0 ; p < m ; p++ )
{
sum = sum + A[i][p]*B[p][j];
}
AB[i][j] = sum;
sum = 0;
}
}
printf("\nEredmenymatrix:\nAB=\n");
for (i=0; i<m; i++) //B matrix kiiratas
{
for(j=0; j<k; j++)
printf("%0.5lf ", AB[i][j]);
printf("\n");
}
return 0;
}
==== Tulajdonságai ====
* [[asszociativitás]]: (''AB'')''C'' = ''A''(''BC'') minden ''k×m''-es ''A'', ''m×n''-es ''B'' és ''n×p''-s ''C'' mátrixra. Ezt a tulajdonságot kihasználva optimalizálni lehet a mátrixszorzást. A leghatékonyabb zárójelezés megtalálása nevezetes optimalizációs probléma.
499 ⟶ 622 sor:
{{Link FA|pl}}
{{Link FA|ur}}
|