c++ 코드를 해석해야되는데


아직 초보라 vector 이부분을 아예모릅니다


혹시 간단히라도 함수 어떤의미인지 정도만이라도 주석좀 달아주실수 있을까요???


코드는 아래입니다


#include <iostream>
#include <cmath>
#include <vector>
#include <fstream>
#include <iomanip>

using namespace std;

vector<double> linspace(int START, int END, int STEP)
{
 vector<double> d;
 double n = ((double)END - START) / (STEP-1);
 for (int i=0; i<STEP; i++)
 d.push_back(START+ n * i);
 return d;
}

class BSex
{
private:
int m_E, m_L,m_Nx, m_Nt ;
double m_sigma, m_r,m_T;
public:
BSex(int nE, int nL, double nsigma, double nr, double nT, int nNx, int
nNt)
{
m_E=nE; m_L=nL; m_Nx=nNx; m_Nt=nNt;
m_sigma=nsigma; m_r=nr; m_T=nT;
}
~BSex(){};
void GetOptionPrice(void);
void WriteData(vector<double> S, vector<vector<double>> CP);
};
void BSex::WriteData(vector<double> S, vector<vector<double>> CP)
{
ofstream output;
output.open("BSex_x_Data.dat");
output<<fixed<<setprecision(4);
for (unsigned int i=0; i < S.size(); i++)
output<<setw(12)<<showpoint<<S[i];
output.clear();
output.close();
output.open("BSex_u_Data.dat");
for(unsigned int n=0;n<CP[0].size();n++)
{
for (unsigned int i=0;i<S.size();i++)
{
output<<setw(12)<<showpoint<<CP[i][n];
}
output<<endl;
}
output.clear();
output.close();
}
void BSex::GetOptionPrice()
{
 vector<double> x=linspace(0,m_L,m_Nx);
 vector<vector<double>> u(m_Nx, vector<double>(m_Nt+1));
 double h=x[2]-x[1];
 double k=m_T/m_Nt;
 for(int i=0;i<m_Nx;i++)
 {
  if(x[i]<=m_E)
   u[i][0]=0;
  else
   u[i][0]=x[i]-m_E;
 }
 for (int j=1;j<m_Nt+1;j++)
  u[m_Nx-1][j]=m_L-m_E*exp(-m_r*k*j);
 for(int n=0;n<m_Nt;n++)
 {
  for (int i=1;i<m_Nx-1;i++)
   u[i][n+1] = u[i][n] +k*(pow(m_sigma,2)/2*pow(x[i],2)
   *(u[i+1][n]-2*u[i][n]+u[i-1][n])/pow(h,2)+m_r*x[i]
      *(u[i+1][n]-u[i-1][n])/(2*h)-m_r*u[i][n]);
 }
 WriteData(x,u);
}

int main()
{BSex ex(100,400,0.5,0.03,0.1,50,1000);
ex.GetOptionPrice();
}