Skip to content

HW0

//
// main.cpp
// ENGS105_HW00
//
// Created by Boyu Meng on 1/9/18.
// Copyright © 2018 Boyu Meng. All rights reserved.
//

#include <iostream>
#include <string>
#include <fstream>
#include <numeric>
#include <cmath>
using namespace std;

int main()
{
double mat1 [1200] [6];
ifstream inFile ("/Users/f0034bp/Documents/PhD classwork/ENGG105/hw0.dat");
for ( int i = 0; i < 1200; i++)
for ( int j = 0; j < 6; j++)
{
inFile >> mat1 [i] [j];
}
// for (int pntr =0; pntr < 10; pntr++ )
// {
// cout << mat1 [pntr] [5]<< endl;
// }
double tempx = 0;
double tempy = 0;
double tempz = 1;
for ( int i = 0; i < 1200; i++)
for ( int j = 0; j < 6; j++)
{
tempx = mat1 [i] [j];
if (tempx > tempy)
{
tempy = tempx;
}
if (tempx < tempz)
{
tempz = tempx;
}
}
cout << "Max = " << tempy << endl;
cout << "Min = " << tempz << endl;
double avg = 0.0;
double sum = 0;
for ( int i = 0; i < 1200; i++)
for ( int j = 0; j < 6; j++)
{
sum += mat1 [i] [j];
}
avg = (sum) / 7200;
cout << "Average = " << avg << endl;
double temp = 0;
for ( int i = 0; i < 1200; i++)
for ( int j = 0; j < 6; j++)
{
temp += pow((mat1 [i] [j] - avg),2);
}
double mse = 0;
mse = temp / 7200;
cout << "Mean squared entries = " << mse << endl;
// now move on to transpose the matrix
double mat2 [6] [1200];
for ( int i = 0; i < 1200; i++)
for ( int j = 0; j < 6; j++)
{
mat2 [j] [i] = mat1 [i] [j];
}
double tempmat [6] [1200] [6];
for ( int i = 0; i < 6; i++)
for ( int j = 0; j < 1200; j++)
for ( int k = 0; k < 6; k++)
{
tempmat [i] [j] [k] = mat2 [i] [j] * mat1 [j] [k];
}
double matb [6] [6];
for ( int i = 0; i < 6; i++)
for ( int j = 0; j < 6; j++)
{
for ( int k = 0; k < 1200; k++)
matb [i] [j] += tempmat [i] [k] [j];
}
// for ( int i = 0; i < 6; i++)
// for ( int j = 0; j < 6; j++)
// cout << matb [i] [j] << endl;
ofstream B;
B.open ("/Users/f0034bp/Documents/PhD classwork/ENGG105/B.dat");
for ( int i = 0; i < 6; i++)
{
for ( int j = 0; j < 6; j++)
{
B << matb [i] [j] << " ";
}
B << endl;
}
B.close();
double diag [6];
ofstream Diag;
Diag.open ("/Users/f0034bp/Documents/PhD classwork/ENGG105/Diag.dat");;
for ( int i = 0; i < 6; i++)
{
diag [i] = matb [i] [i];
Diag << diag [i] << " ";
// cout << endl << diag [i] << endl;
}
Diag.close();
double sysm [6] [6];
for ( int i = 0; i < 6; i++)
for ( int j = 0; j < 6; j++)
{
sysm [i] [j] = abs( matb [i] [j] - matb [j] [i]);
// cout << matb [i] [j] << endl;
// cout << sysm [i] [j] << endl;
}
double mean = 0;
double max = 0;
double rms = 0;
double square = 0;
sum = 0;
for ( int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++)
{
sum += sysm [i] [j];
square += pow (sysm [i] [j], 2);
if (sysm [i] [j]> max)
{
max = sysm [i] [j];
}
}
mean = sum / 36;
rms = sqrt( square / 36);
cout << "max = " << max << endl;
cout << "mean = " << mean << endl;
cout << "RMS = " << rms << endl;
double sysm2 [6] [6];
for ( int i = 0; i < 6; i++)
for ( int j = 0; j < 6; j++)
{
sysm2 [i] [j] = abs( (matb [i] [j] - matb [j] [i]) / (matb [i] [j] + matb [j] [i]) / 2);
// cout << matb [i] [j] << endl;
// cout << sysm [i] [j] << endl;
}
mean = 0;
max = 0;
rms = 0;
square = 0;
sum = 0;
for ( int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++)
{
sum += sysm2 [i] [j];
square += pow (sysm2 [i] [j], 2);
if (sysm2 [i] [j]> max)
{
max = sysm2 [i] [j];
}
}
mean = sum / 36;
rms = sqrt( square / 36);
cout << "max = " << max << endl;
cout << "mean = " << mean << endl;
cout << "RMS = " << rms << endl;

return 0;
}