Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This is my partners code and I need to rewrite so it doesn\'t look the same but

ID: 3564545 • Letter: T

Question

This is my partners code and I need to rewrite so it doesn't look the same but works the same.

#include <vector>
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <iomanip>
#include <array>
#include <complex>
#include <cmath>
using namespace std;

vector<double> calculate_mag_response(double start_freq, double end_freq,
int N, vector<double> num, vector<double> den);

int main(int argc,char *argv[])
{
vector<double> myNum, myDen, results;
//fstream outfile;
int N=100;
//outfile.open("datafile.txt");
myNum.push_back(1.0);
myNum.push_back(1.0); //create a smple zero at s=-1
myDen.push_back(1.0);
myDen.push_back(3.0);
myDen.push_back(2.0); //create two poles at s=-1,-2
results=calculate_mag_response(.1,1000,100,myNum,myDen); //Call the student function
//if (N=results.size()!= 100)
//{
//cout << "Your function did not provide correct number of data points. Please fix" << endl;
//exit(0);
//}
for (int k=0;k<=N-1;k++)
    cout<<results[k]<<endl;
int r;
cin>> r;
//outfile << i << " " << results[i] << endl; //Write this garbage to a file
return(0);
}

vector<double> calculate_mag_response(double w0, double wf,
int N, vector<double> num, vector<double> den)
{
    std::vector<double>result;
   // double delta, freq, n, d;
   
    //delta = (end_freq-start_freq)/(N-1);
   // n=num.size();
    ///d=den.size();
   
   
   
    for(double w=w0;w<=wf;w+=wf/N)
   
   
    { complex<double>s (0.0,w);
        complex<double>num_result=0;
        complex<double>den_result=0;
   
    //freq=start_freq;
    //for(int i=N;i>0;i--)
   // {
       for(unsigned int t=0;t<=num.size()-1;t++)
          num_result+=num[t]*pow(s,num.size()-t-1);

  
    //freq=start_freq;
   // for(int i=N;i>0;i--)
   // {
        for(unsigned int i=0;i<=den.size()-1;i++)
           den_result+=den[i]*pow(s,den.size()-1-i);
        double G = 20*log10(abs(num_result/den_result));
    result.push_back(G);
    }
    return (result);}

// cout << "num is " << num_result << endl << endl;
// cout << "den is " << den_result << endl << endl;

  
   
   

    //return result;
//   cout << result << " dB" << endl;
//system("pause");
//return (0);

Explanation / Answer

#include <vector>
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <iomanip>
#include <array>
#include <complex>
#include <cmath>
using namespace std;

vector<double> cal_mag_res(double w0, double wf,
int N, vector<double> num, vector<double> den)
{
std::vector<double>result;


for(double w=w0;w<=wf;w+=wf/N)


{ complex<double>s (0.0,w);
complex<double>num_result=0;
complex<double>den_result=0;


for(unsigned int t=0;t<=num.size()-1;t++)
num_result+=num[t]*pow(s,num.size()-t-1);

  
  
for(unsigned int i=0;i<=den.size()-1;i++)
den_result+=den[i]*pow(s,den.size()-1-i);
double G = 20*log10(abs(num_result/den_result));
result.push_back(G);
}
return (result);
   }

int main(int argc,char *argv[])
{
vector<double> myNum, myDen, results;
//fstream outfile;
int N=100;
//outfile.open("datafile.txt");
myNum.push_back(1.0);
myNum.push_back(1.0); //create a smple zero at s=-1
myDen.push_back(1.0);
myDen.push_back(3.0);
myDen.push_back(2.0); //create two poles at s=-1,-2
results=cal_mag_res(.1,1000,100,myNum,myDen); //Call the student function

for (int k=0;k<=N-1;k++)
cout<<results[k]<<endl;
int r;
cin>> r;

return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote