Ik moet van een 4x4 matrix de minor bepalen. Dit is dezelfde matrix waarbij rij i en kolom j van het element a(i,j) wordt verwijderd.
Je houdt dus een matrix met de dimensies 3x3 over.
Aangenomen wordt dat de input waarden de matrix A en de waarden i en j zijn.
Het prototype van de functie is als volgt:
Code: Selecteer alles
double minor(double a[][4], int i, int j);
Dus:
Code: Selecteer alles
#include <iostream>
using namespace std;
//Definieren van de maximale grootte van de matrix
#define MAX_SIZE 4
//Definieren van het type voor de matrices
typedef double matrix[MAX_SIZE][MAX_SIZE];
//Functie prototype
void lees_matrix(matrix a, int k, int l);
void print_matrix(matrix c, int k,int j);
//double minor(matrix a, int i, int j);
int main()
{
//Declaraties
matrix a;
int rij, kolom;
cout <<"Voer het aantal rijen en kolommen voor de matrix in" << endl;
cin >> rij >> kolom;
if(rij>MAX_SIZE || kolom>MAX_SIZE)
{
cout << "De maximale grootte van de rijen of kolommen wordt overschreden." << endl;
exit(1);
}
lees_matrix(a, rij, kolom);
print_matrix(a, rij, kolom);
// minor(a, rij, kolom);
return 0;
}
/*------------------------------------------------------------*/
//Functie voor het lezen van een matrix
void lees_matrix(matrix a, int k, int l)
{
int rij, kolom;
for (rij=0; rij<k; rij++)
{
cout << "Voer de data in voor rij "<< rij+1 << endl;
for(kolom=0; kolom<l; kolom++)
{
cin >> a[rij][kolom];
}
}
cout << endl;
return;
}
/*------------------------------------------------------------*/
//Functie voor het printen van een matrix
void print_matrix(matrix a, int k,int j)
{
int rij, kolom;
for(rij=0; rij<k; rij++)
{
for(kolom=0; kolom<j; kolom++)
{
cout << a[rij][kolom] << " ";
}
cout << endl;
}
return;
}
/*------------------------------------------------------------*/
//Functie bepalen van een minor
double minor(matrix a, int i, int j)
{
int rij, kolom;
}
Dit werkt dus, maar er staat dan ook nog niks in de functie voor de minor.
Je moet iets doen met minimaal 2 for loops en met -1 of iets..
Het is niet nodig om classes of pointers te gebruiken.
Daarna moet er nog een functie voor de cofactor zijn:
Code: Selecteer alles
double cofactor(double a[][4], int i, int j);
en uiteindelijk de determinant
Code: Selecteer alles
double det_c(double a[][4])
a) Selecteer een kolom
b) vermenigvuldig elk element van de ko,lom met hn cofactor
c) Tel alle producten van b) bij elkaar op.