#include<stdio.h>
main()
{
float a[100][100]={0.0};
float A[100]={0.0};
int i=1,j,h=0;
float b;
int k=1,q=1,l,y;
char c,d;
int r[100]={0};
//-------------请输入样本集X1,并将其转化为增广模式向量---------------------------
printf("请输入样本集X1,不同维间用逗号隔开,回车进入下一个,输入完毕后按#退出。\n");
while(c!='#')
{
printf("请输入第%d个样本",i);
j=0;
scanf("%f",&a[i][j+1]);
scanf("%c",&c);
while(c==',')
{
j++;
scanf("%f",&a[i][j+1]);
scanf("%c",&c);
} //由,号区别不同维向量,放入a[][]二维数组中
r[i]=j+2; //r[]数组存放该模式向量集维数
while(c=='@') //输入@退出程序
break;
a[i][0]=1; //将其成员变为增广模式向量
i++;
}
//-------------请输入样本集X2,并将其转化为增广模式向量--------------------------
printf("请输入样本集X2,不同维间用逗号隔开,回车进入下一个,输入完毕后按#退出。\n");
while(d!='#')
{
j=0;
printf("请输入第%d个样本",i);
scanf("%f",&b);
a[i][j+1]=-b; //X2成员符号定为负
scanf("%c",&d);
while(d==',')
{
j++;
scanf("%f",&b);
a[i][j+1]=-b; //将样本集X2归一化
scanf("%c",&d);
}
r[i]=j+2;
while(d=='@')
break;
a[i][0]=-1;
i++;
}
l=i; //记录数组总长度
//-----------------------打印---------------------------------
for(i=1;i<l;i++)
{
printf("a[%d]=",i); //打印所有数组成员
y=r[i];
j=0;
while(y!=0)
{
printf("%f\t",a[i][j]);
y--;
j++;
}
printf("\n");
if(r[i]>h)
h=r[i]; //h的终值为最大维数
}
printf("A=");
for(j=0;j<h;j++)
printf("%d",A[j]);
printf("\n");
//------------------------------固定增量法求解权向量-----------------------------
while(k!=0)
{
k=0;
printf("第%d次迭代:\n",q);
for(i=1;i<l;i++)
{
y=r[i];
b=0.0;
for(j=0;j<y;j++)
b=A[j]*a[i][j]+b; //计算内积
if(b<=0)
{
printf("用固定增量法求解的权向量为A=");
y=r[i];
for(j=0;j<y;j++)
{
A[j]=A[j]+a[i][j];
printf("%f\t",A[j]);
}
k++; //标记
printf("\n");
}
}
q++;
}
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
fixed_increment_method.rar (2个子文件)
固定增量法.cpp 2KB
www.pudn.com.txt 218B
共 2 条
- 1
资源评论
JonSco
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功