У меня есть код c++. что я должен использовать в объективе c.
double[,] x = new double[,]{{-1},{-0.8},{-0.6},{-0.4},{-0.2},{0},{0.2},{0.4},{0.6},{0.8},{1.0}};
double[] y = new double[]{0.223130,0.382893,0.582748,0.786628,0.941765,1.000000,0.941765,0.786628,0.582748,0.382893,0.223130};
double[] c = new double[]{0.3};
double epsf = 0;
double epsx = 0.000001;
int maxits = 0;
int info;
alglib::lsfitstate state;
alglib::lsfitreport rep;
double diffstep = 0.0001;
//
// Fitting with weights
// (you can change weights and see how it changes result)
//
double[] w = new double[]{1,1,1,1,1,1,1,1,1,1,1};
alglib::lsfitcreatewf(x, y, w, c, diffstep, out state);
alglib::lsfitsetcond(state, epsf, epsx, maxits);
alglib::lsfitfit(state, function_cx_1_func, null, null);
alglib::lsfitresults(state, out info, out c, out rep);
Я уже назвал свой объективный файл в конце с.mm
Но я получаю разницу Ошибки. (первые строки - ожидаемое выражение, когда я начинаю свои vars).
Я не могу c++. Но мне нужна только одна функция.
Надеюсь, что это решение для этого вопроса. https://gis.stackexchange.com/questions/74567/math-algorithm-for-n-amount-points-in-objective-c
Это в основном код Java в начале для объявлений массива, а не C, C++ или ObjC.
Это будет код C/C++:
double x[][1] = {{-1},{-0.8},{-0.6},{-0.4},{-0.2},{0},{0.2},{0.4},{0.6},{0.8},{1.0}};
double y[] = {0.223130,0.382893,0.582748,0.786628,0.941765,1.000000,0.941765,0.786628,0.582748,0.382893,0.223130};
double c[] = {0.3};
Однако, согласно lsfitcreatewf
функции ссылки здесь, вам это нужно, чтобы быть типа alglib::real_2d_array
. Есть несколько примеров здесь, как генерировать такие данные.
Здесь и далее приведены некоторые общие примеры того, как использовать подпакет lsfit.