- Moderatör
- #1
Słyszę, słyszę letni powiew.
Kurucu
Manual olarak girilen matrisin determinantını,transpozunu ve izini(trace) bulmaya yarayan kodlar. Lineer hocası ödev vermişti, bu şekilde hallettim. Verilen ödevde matris belirliydi, siz dilerseniz basit bir for ile input olarak girilen matris olarak kodları ayarlıyabilirsiniz (birkaç dakikanızı almaz bile.)
C++:
#include "pch.h"
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
static double trace;
float Matrix[3][3] = { {1.f/3.f, 1.f/4.f, 1.f/5.f} , {1.f/4.f, 1.f/5.f, 1.f/6.f} , {1.f/5.f, 1.f/6.f,1.f/7.f} };
int m = 3, n = 3, i, j;
cout << "Entered Matrix : \n ";
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
std::cout << std::fixed << std::setprecision(3) << Matrix[i][j] << " ";
cout << "\n ";
}
cout << "Transpose of Matrix : \n ";
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
cout << Matrix[j][i] << " ";
cout << "\n ";
}
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
if (i == j) {
trace = trace + Matrix[i][j];
}
}
}
cout << "The trace is: " << trace << endl;
float detx = (Matrix[0][0]*Matrix[1][1]*Matrix[2][2])+(Matrix[1][0]*Matrix[2][1]*Matrix[0][2])+(Matrix[2][0]*Matrix[0][1]*Matrix[1][2]);
float dety = (Matrix[0][2]*Matrix[1][1]*Matrix[2][0])+(Matrix[1][2]*Matrix[2][1]*Matrix[0][0])+(Matrix[2][2]*Matrix[0][1]*Matrix[1][0]);
float determinant = detx - dety;
std::cout << "The determinant is: " << std::fixed << std::setprecision(27) << determinant << " ";
std::getchar();
return 0;
}