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

📄 methods.c

📁 耗散粒子群(DPSO)优化算法C程序及其测试实例
💻 C
字号:
#include "headfile.h"#include "global.h"#include "mem_loc.h"#include "myfun.h"#include "methods.h"float meanTotalValues(FMATRIX values, int row, int col) {	float meanValue = 0;	int i, j;	j=0;    for (i=0; i<row; i++) {	    for (j=0; j<col; j++) {			meanValue += (fabs(values[i][j]));		}    }	    return meanValue/((float)(row*col));}FVECTOR meanValues(FMATRIX values, int row, int col) {	FVECTOR meanValues;	int i, j;	FVectorAllocate(&meanValues, row);    for (i=0; i<row; i++) {	    for (j=0; j<col; j++) {			meanValues[i] +=  log(fabs(values[i][j]));		}		meanValues[i] = meanValues[i]/col;    }    return meanValues;}float squareSum(FVECTOR v1, int len) {	float totalSum = 0;	int i;	for (i=0; i<len; i++) {	  totalSum += pow(v1[i],2.0);	}	return sqrt(totalSum);}float totalDiversity(FMATRIX individuals, int row, int col) {	FVECTOR meanVal;	FVECTOR devValues;	int i, j;    float diversities = 0;	FVectorAllocate(&devValues, row); 	meanVal = meanValues(individuals, row, col);   for (i=0; i<col; i++) {		for (j=0; j<row; j++) {			devValues[j] = individuals[j][i]-meanVal[j];		}		diversities += squareSum(devValues, row);    }    diversities = diversities/col;    return diversities;}float totalMeans(FMATRIX individuals, int row, int col) {	int i;    float diversities = 0;    for (i=0; i<col; i++) {		diversities += squareSum(individuals[i], row);    }    diversities = diversities/col;    return diversities;}void printMatrix(FMATRIX values, int row, int col) {	int i, j;	for (i=0; i<col; i++) {		for (j=0; j<row; j++) {			printf("%f\t", values[j][i]);		}		printf("\n");	}	printf("\n");}void outputMatrix(FILE* file, FMATRIX values, int row, int col) {	int i, j;	for (i=0; i<col; i++) {		for (j=0; j<row; j++) {			fprintf(file, "%f\t", values[j][i]);		}		fprintf(file, "\n");	}	fprintf(file, "\n");}void printVECTOR(FVECTOR values, int col) {	int j;	for (j=0; j<col; j++) {		printf("%f\t", values[j]);	}	printf("\n");}void outputVECTOR(FILE* file, FVECTOR values, int col) {	int j;	for (j=0; j<col; j++) {		fprintf(file, "%f\t", values[j]);	}	fprintf(file, "\n");}

⌨️ 快捷键说明

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