/* * Функция-прокладка: * int n1 - размерность массива параметров пристрелки (=3) * int n2 - размерность массива невязок (=2) = число пристреливаемых параметров * ext_value1 p[] - массив параметров пристрелки * ext_value1 q[] - массив значений функций невязок */ void f(int n1,int n2,ext_value1 p[],ext_value1 q[]) { int n=5; // размерность системы дифференциальных уравнений (=5) ext_value1 y[n]; // для решения системы дифференциальных уравнений ext_value1 ext_null(n2); // константа ноль double t=0,tend=M_PI/2,h,hmax,eps=1.e-12; // задание начальных условий по параметрам пристрелки y[0]=ext_null; // x1(0)=0 y[1]=p[0]; // x2(0)= первый параметр пристрелки y[2]=p[1]; // p1(0)= второй параметр пристрелки y[3]=ext_null; // p2(0)=0 y[4]=p[2]; // alpha h=hmax=tend-t; // printf("f dopri8 start\n"); dopri8(n,t,y,tend,eps,hmax,h); // printf("f dopri8 end\n"); // Вычисление невязок q[0]=y[0]; q[1]=y[1]+M_PI/2; }