class svm{
double[][] x=new double[5][3];
int[] y=new int[5];
double[] a=new double[3];
double b;
double m1,m2;
int m;
public static void main(String args[]){
svm test=new svm();
}
svm(){
x[1][1]=1;
x[1][2]=1;
x[2][1]=2;
x[2][2]=1;
y[1]=1;
y[2]=-1;
b=2.1;
a[1]=1;
a[2]=1;
System.out.println(f());
for(m=1;m<3;m++){
System.out.println(g(m));
}
}
double g(int m){
double g1;
g1=0;
if(pen(m)<50)g1=b+a[1]*x[m][1]+a[2]*x[m][2];
if(g1<0)g1=-g1;
return g1;
}
double f(){
double ming,m1;
int m;
ming=999;
for(m=1;m<3;m++){
m1=9999;
if(pen(m)>50)m1=met(m);
if(m1<ming)ming=m1;
}
if(ming>900)ming=0;
return ming;
}
int pen(int m){
double g1;
int h,px;
g1=b+a[1]*x[m][1]+a[2]*x[m][2];
px=0;
h=0;
if(g1>0)h=h+1;
if(y[m]==1)h=h+1;
if(h==2)px=100;
h=0;
if(g1<0)h=h+1;
if(y[m]==-1)h=h+1;
if(h==2)px=100;
return px;
}
double met(int m){
double m1,m2,mx;
double t;
m1=a[1]*a[1]+a[2]*a[2];
m2=-b-a[1]*x[m][1]-a[2]*x[m][2];
t=m2/m1;
mx=m1*t*t;
return mx;
}
}
最終更新:2011年06月02日 20:59