rendered paste bodydouble Ravn1(double x)//Равномерная ядерная функция для эмпирической функции
{
if(x<-1)return 0;
if(x<=1&&x>=-1)
{
x+=1;
if(x<0) x*=(-1);
return 0.5*x;
}
if(x>1) return 1;
}
double Lapl2(double x)//ядерная функция Лапласа для функции Розенблатта Парзена
{
return 0.5*pow(2.71,-1*fabs(x));
}
double G(double *xmass,double x,double h,int N)//Эмпирическая функция
{
double G=0;
for(int i=1;i<=N;i++)
{
G+=Ravn1((x-xmass[i])/h);
}
return G/N;
}
double g(double *xmass,double x,double h,int N)//Функция Розенблатта Парзена
{
double G=0,a;
for(int i=1;i<=N;i++)
{
G+=Lapl2((x-xmass[i])/h);
}
a=N*h;
return G/a;
}
//А это на кнопке
Paint.GraficBreak(1);
for(i=0; i<kol; i++)
{
Paint.GraficAddPoint(xmass[i],G(xmass,xmass[i],h,kol));//Рисует эмпирическую функцию
}
Paint2.GraficBreak(1);
for(i=0; i<kol; i++)
{
Paint2.GraficAddPoint(xmass[i],g(xmass,xmass[i],h,kol));//Ртсует Розенблата Парзена
}