📄 for_lagrange_vector.cpp
字号:
#include<iostream.h>
//#include<math.h>
void main()
{const int l=8;
const int c=100;
double kk=0,ww;
double nn,w1,w2,b,b1;
double e=0.001;
double x[10][2];
int y[10];
double a[10];
double ee[10];
x[1][1]=0.3858;
x[1][2]=0.4687;
y[1]=1;
x[2][1]=0.4871;
x[2][2]=0.611;
y[2]=-1;
x[3][1]=0.9218;
x[3][2]=0.4103;
y[3]=-1;
x[4][1]=0.7382;
x[4][2]=0.8936;
y[4]=-1;
x[5][1]=0.1736;
x[5][2]=0.0579;
y[5]=1;
x[6][1]=0.4057;
x[6][2]=0.3529;
y[6]=1;
x[7][1]=0.9355;
x[7][2]=0.8132;
y[7]=-1;
x[8][1]=0.2146;
x[8][2]=0.0099;
y[8]=1;
for(int i=1;i<=l;i++)
{a[i]=0;}
cout<<"output the date:"<<endl;
cout<<"x[i][1]"<<" "<<"x[i][2]"<<" "<<"y[i]"<<" "<<"a[i]"<<endl;
for(i=1;i<=l;i++)
{cout<<x[i][1]<<" "<<x[i][2]<<" "<<y[i]<<" "<<a[i]<<endl;}
loop:for(i=1;i<=l;i++)
{
for(int j=1;j<=l;j++)
{kk=kk+a[j]*y[j]*(x[i][1]*x[j][1]+x[i][2]*x[j][2]);}
nn=1/(x[i][1]*x[i][1]+x[i][2]*x[i][2]);
//nn=pow(nn,l);
a[i]=a[i]+nn*(1-y[i]*kk);
if(a[i]<0){a[i]=0;}
}
w1=0;
w2=0;
for(i=1;i<=l;i++)
{w1=w1+a[i]*y[i]*x[i][1];
w2=w2+a[i]*y[i]*x[i][2];
}
for(i=1;i<=l;i++)
{if(y[i]==-1)b=w1*x[i][1]+w2*x[i][2];break;}
for(i=1;i<=l;i++)
{if(y[i]==1)b1=w1*x[i][1]+w2*x[i][2];break;}
for(i=1;i<=l;i++)
{if(y[i]==-1){kk=w1*x[i][1]+w2*x[i][2];
if(kk>b)b=kk;}
if(y[i]==1){kk=w1*x[i][1]+w2*x[i][2];
if(kk<b1)b1=kk;}
}
b=-0.5*(b+b1);
for(i=1;i<=l;i++)
{kk=0;
for(int j=1;j<=l;j++)
{kk=kk+y[j]*a[j]*(x[i][1]*x[j][1]+x[i][2]*x[j][2]);
kk=1-y[i]*(kk+b);
if(kk<0)ee[i]=0;
else ee[i]=kk;
}
}
kk=0;
for(i=1;i<=l;i++)
{kk=kk+a[i];}
nn=0;
for(i=1;i<=l;i++)
{nn=nn+ee[i];}
ww=0;
for(i=1;i<=l;i++)
for(int j=1;j<=l;j++)
{ww=ww+a[i]*a[j]*y[i]*y[j]*(x[i][1]*x[j][1]+x[i][2]*x[j][2]);}
ww=kk-0.5*ww;
ww=(kk-2*ww+c*nn)/(kk-ww+c*nn+1);
if(ww>e)goto loop;
cout<<"output the end date:"<<endl;
cout<<"x[i][1]"<<" "<<"x[i][2]"<<" "<<"y[i]"<<" "<<"a[i]"<<endl;
for(i=1;i<=l;i++)
{cout<<x[i][1]<<" "<<x[i][2]<<" "<<y[i]<<" "<<a[i]<<endl;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -