последняя попытка: у кого есть реализации на С++ алгоритмов прогнозирования, ОЗРВИТЕСЬ!!!
вот шо ес у мэня:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int iN=8,iM=6,iSign;
long double dC,dY;
double *daY=new double[iN];
double *daX=new double[iN];
double *daS=new double[iM+1];
double *daA=new double[iM+1];
// - - - - - - - - - - - - - - -
long double **daU=new long double*[iM+1];
for (int j = 0; j <= iM; j++)
daU[j] = new long double[iM+1];
// - - - - - - - - - - - - - - -
for(int i=0;i<iN;i++)
{
daX[i]=ListBox1->Items->Strings[i].ToDouble();
daY[i]=ListBox2->Items->Strings[i].ToDouble();
}
daS[0]=0.0;
for(int i=0;i<iN;i++) daS[0]+=daY[i];
for(int j=1;j<=iM;j++)
{
daS[j]=0.0;
for(int i=0;i<iN;i++)
{
if ((daX[i]<0.0)&&((j%2)!=0))iSign=-1; else iSign=1;
if (daX[i]!=0.0) daS[j]+=daY[i]*exp(logl(fabsl(daX[i]))*j)*iSign;
}
}
for(int i=0;i<=iM;i++)
for(int j=0;j<=iM;j++)
{
daU[i][j]=0.0;
for(int k=0;k<iN;k++)
{
if((daX[k]<0.0)&&((i+j)%2!=0)) iSign=-1; else iSign=1;
if (daX[k]!=0.0) daU[i][j]+=exp(logl(fabsl(daX[k]))*(j+i))*iSign;
}
}
daU[0][0]=iN;
for(int k=0;k<iM;k++)//k:=1 to p-1 //p=m+1
for(int i=k+1;i<=iM;i++)//i:=k+1 to p
{
dC=daU[i][k]/daU[k][k];
daS[i]=daS[k]*dC-daS[i];
for(int j=k;j<=iM;j++)//j:=k to p
daU[i][j]=daU[k][j]*dC-daU[i][j];
}
daA[iM]=daS[iM]/daU[iM][iM]; //x=daA a=daU b=daS
for(int k=iM-1;k>=0;k--)//k:=p-1 downto 1
{
dY=0.0;
for(int i=iM-1;i>=k;i--)// i:=p-1 downto k do
dY+=daU[k][i+1]*daA[i+1];
daA[k]=(daS[k]-dY)/daU[k][k];
}
//daA - ìàññèâ êîýôôèöèåíòîâ a0-am
for(int i=0;i<=iM;i++) ListBox3->Items->Add(daA[i]);
for(int j=0;j<iN;j++)
{
daS[j]=0.0;
for(int k=0;k<=iM;k++)
{
if ((daX[k]<0.0)&&((k%2)!=0))iSign=-1; else iSign=1;
if (daX[j]!=0.0) daS[j]+=daA[k]*exp(log(fabs(daX[j]))*k)*iSign;
}
ListBox4->Items->Add(daS[j]);
}
}
ХД ПК
Исправлена подсветка синтаксиса. -- ПК.
08.06.03 11:18: Перенесено модератором из 'C/C++' в Алгоритмы. Изменил название с "delete new int" на теперешнее. — ХД