Матрица Жакобиана
Помогите записать алгоритм на C++ - "матрицу Жакобиана для нелинеиной системы уравнении":
//Y - неизвестные переменные
//F - вектор уравнении
//equilibre_Fe_Cr_C(n,Y,F) - функция с уравнениями
У меня не получается. И самое страшное, что не могу найти ошибки.
Код:
Код:
|
void Jacobian(std::vector <double> &Y, std::vector <double> &F, std::vector < std::vector<double> > &Jacobian2D)
{
int i,j;
int n;
int i1 = Y.size();
int i2 = i1;
n = i1;
std::vector <double> Ynew(i2);
std::vector < std::vector<double> > Fnew;
Fnew.resize(i1);
Jacobian2D.resize(i1);
for (i = 0; i < Jacobian2D.size(); i++)
{
Fnew[i].resize(i2);
Jacobian2D[i].resize(i2);
}
for( i=0 ; i < Jacobian2D.size() ; i++)
for(j=0 ; j < Jacobian2D[i].size() ; j++)
{
Ynew[j] = Y[j] + kdelta;
equilibre_Fe_Cr_C(n,Ynew,F);
Fnew[i][j] = F[i];
equilibre_Fe_Cr_C(n,Y,F);
Jacobian2D[i][j] = (Fnew[i][j] - F[i])/kdelta;
}
} |