Это пример оптимизации метода Newton-raphson. я получаю сообщение об ошибке при компиляции:Пример оптимизации C++
функция разрешения не допускается здесь до «{» лексема
Это указывает на первой строке первой функции.
Любая помощь? спасибо заранее
#include <iostream>
#include <cmath>
#include <fstream>
#include <vector>
#include <numeric>
#include <iterator>
#include <map>
#include <string>
//C++ clang
using namespace std;
int main()
{
//Optimization Example
void getF(double* X, double *F)
{
F[0]=X[0]*X[0]+X[1]*X[1]-4;
F[1]=-X[0]*X[0]/3+X[1];
return;
}
void Jacobian(double* X, double** H)
{
H[0][0]=2*X[0];
H[0][1]=2*X[1];
H[1][0]=-2/3*X[0];
H[1][1]=1;
return;
}
unsigned int maxSteps=1000;
double epsilon=0.00001;
double* X=new double[2];
double* F=new double[2];
double** H= new double*[2];
for (unsigned int i=0 ; i<2 ; i++)
{
H[i]=new double[2];
}
cout << "Solution : " << endl;
cout << "x = " << X[0] << endl;
cout << "y = " << X[1] << endl;
delete[] X;
delete[] F;
for (unsigned int i=0 ; i<2 ; i++)
{
delete[] H[i];
}
delete[] H;
}
Переместите функции (getF, якобиан) за пределы функции main(). Поместите их в глобальную сферу. Если вы не хотите их в глобальном пространстве имен, поместите их в обычное пространство имен C++ или в анонимное пространство имен (просто окружите их {}). –
Большое спасибо! проблема решена – JasBeck
Название вашего вопроса не имеет отношения к тому, что вы заявляете. Не могли бы вы обновить свой титул? – Misgevolution