⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 固定增量法.cpp

📁 该程序可实现将样本集转化为增广模式向量
💻 CPP
字号:
#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;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -