亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? elemmatoper.c

?? 包含矩陣和向量一些基本運算的函數庫,powermethod.c: 冪法的主程序
?? C
字號:
/*This is a collection of functions about the basic matrix operations
 * for solving linear equations and related problems. In this package,
 * matrices are assumed to be N-by-N square matrix, and the vectors
 * to be length of N.
 * Most of the functions in this package are independent of others.
 * 
 * This program was written by Xiaoke Yang @ School of Automation Science and
 * Electrical Engineering, Beihang University. You can copy, modify or 
 * redistribute it freely with this header kept intact. Welcome reports of 
 * bugs, suggestions, etc. yxkmlstar@gmail.com
 *
 * Last modified by Xiaoke Yang, Oct.31,2007
 */
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define N		3			/*The matrix dimension or vector length*/
#define eps		1e-10		/*The error tolerance or accuracy of computation*/
#define DEBUG	1			/*The flag of debugging mode, 1 for on, 0 for off*/
#define IMAX	200			/*The maximum iteration count, used to terminate */
							/*possible infinite iteration*/

/*Generate a N-by-N random matrix*/
/*not implemented yet*/
void randM(double M[N][N]){
}

/*Extract the diagonal entries from a N-by-N matrix*/
/*not implemented yet*/
void diag(double M[N][N],double D[N]){

}

/*Generate a N-by-N diagonal matrix using the given vector*/
/*not implemented yet*/
void diagg(double v[N],double M[N][N]){
}

/*Generate a N-by-N diagonal matrix of all ones*/
/*not implemented yet*/
void ones(){
}

/*Generate an N-dimensional identity matrix In*/
/*not implemented yet*/
void eye(){
}

/*Get the upper triangular matrix of a square matrix*/
/*not implemented yet*/
void triu(){
}

/*Get the lower triangular matrix of a square matrix*/
/*not implemented yet*/
void tril(){
}

/* Description: copy the values of N-by-N matrix src to Matrix dest
 * Calling syntax: matcopy(src,dest);
 * */
void matcopy(double src[N][N], double dest[N][N]){
	int i,j;
	for(i=0;i<N;i++)
		for(j=0;j<N;j++)
			dest[i][j]=src[i][j];
}

/* Description: copy the values of vector src[N] to vector dest[N]
 * Calling syntax: veccopy(src,dest)
 * */
void veccopy(double src[N],double dest[N]){
	int i;
	for(i=0;i<N;i++)
		dest[i]=src[i];
}

/* Description: print the values of a N-by-N matrix on the screen
 * Calling syntax: matdisp(mat);
 * */
void matdisp(double mat[N][N]){
	int i,j;
	for(i=0;i<N;i++){
		for(j=0;j<N;j++){
			printf("%.7e\t",mat[i][j]);
		}
		printf("\b\n");
	}
}

/* Description: print the values of a vector of length N on the screen
 * Calling syntax: vecdisp(vec);
 * */
void vecdisp(double vec[N]){
	int i;
	for(i=0;i<N;i++){
		printf("%.7e\t",vec[i]);
	}
	printf("\b\n");
}

/* Description: check if a matrix is row diagonally dominant
 * Calling syntax: val=diagdomr(A);
 * */
int diagdomr(double A[N][N]){
	int isdom=1;	/*the return value, 0 for non-dominant, 1 for dominant*/
	int i,j;		/*the iterator*/
	double s;
	for(i=0;i<N;i++){
		s=0;						/*initialize s as 0 for each row*/
		for(j=0;j<N;j++){
			if(j!=i)
				s+=fabs(A[i][j]);	/*the sum of the magnitude of all*/
		}							/*non-diagnoal entries in each row*/
		/*print the debugging information*/
		if(DEBUG==1){
			printf("the sum of magnitude of all non-diagonal entries in row %d is %f.\n",i+1,s);
			printf("the magnitude of diagonal entries in row %d is %f.\n",i+1,fabs(A[i][i]));
		}
		if((fabs(A[i][i])-s)<eps){	/*A(i,i)<s or A(i,i)=s*/
			isdom=0;
			break;
		}
	}
	return isdom;
}

/* Description: check if a matrix is column diagonally dominant
 * Calling syntax: val=diagdomc(A);
 * */
int diagdomc(double A[N][N]){
	int isdom=1;	/*the return value, 0 for non-dominant, 1 for dominant*/
	int i,j;		/*the iterator*/
	double s;
	for(j=0;j<N;j++){
		s=0;						/*initialize s as 0 for each row*/
		for(i=0;i<N;i++){
			if(i!=j)
				s+=fabs(A[i][j]);	/*the sum of the magnitude of all*/
		}							/*non-diagnoal entries in each row*/
		if(fabs(A[j][j])-s<eps){	/*A(j,j)<s or A(j,j)=s*/
			isdom=0;
			break;
		}
	}
	return isdom;
}

/* Description: matrix multiplication, res=A*B
 * Calling syntax: matmult(A,B,res);
 * */
void matmult(double A[N][N],double B[N][N],double res[N][N]){
	int i,j,k;
	double s;
	for(i=0;i<N;i++){			/*i iterates through the row of res[][]*/
		for(j=0;j<N;j++){		/*j iterates through the column of res[][]*/
			s=0;
			for(k=0;k<N;k++)	/*k iterates through row of A and column of B*/
				s+=A[i][k]*B[k][j];
			res[i][j]=s;
		}
	}
}

/* Function: void matmultvec(double A[N][N],double b[N],double res[N])
 * Description: The multiplication of a matrix and a vector, res=A*b
 * Input: A[N][N]-a square matrix; 
 *		  b[N]-a vector of N; 
 *		  res[N]-the resultant vector;
 * Output: none
 * Calling Syntax: matmultvec(A,b,res);
 */
void matmultvec(double A[N][N],double b[N],double res[N]){
	int i,k;
	double s;
	for(i=0;i<N;i++){			/*i iterates through of row of res[]*/
		s=0;
		for(k=0;k<N;k++)		/*k iterates through row of A and column of b*/
			s+=A[i][k]*b[k];
		res[i]=s;
	}
}

/* Description: the qutient of a vector b[N] divided by a constant c, q=b/c.
 * Calling Syntax: vecmultcon(b,c,q);
 * */
void vecmultcon(double b[N], double c, double q[N]){
	int i;
	for(i=0;i<N;i++)
		q[i]=b[i]*c;
}		


/* Description: read data from a file*/
/*not implemented yet*/
void matread(char *fname, double A){
}

/* Description: sum norm or l1 norm of vectors on Rn
 * Calling syntax: val=vecnorm1(vec);
 * */
double vecnorm1(double vec[N]){
	int i;
	double s=0;
	for(i=0;i<N;i++)
		s+=fabs(vec[i]);
	return s;
}

/* Description: Euclidean norm or l2 norm of vectors on Rn
 * Calling syntax: val=vecnorm2(vec);
 * */
double vecnorm2(double vec[N]){
	int i;
	double s=0;
	for(i=0;i<N;i++)
		s+=pow(vec[i],2);
	return sqrt(s);
}

/* Description: max norm or l_inf norm of vectors on Rn
 * Calling syntax: val=vecnorminf(vec);
 * */
double vecnorminf(double vec[N]){
	int i;
	double m;
	m=vec[0];
	for(i=1;i<N;i++)
		if(vec[i]>m)
			m=vec[i];
}

/* Description: lp norm of vectors on Rn, p>=1.
 * Calling syntax: val=vecnormp(vec,p)
 * */
double vecnormp(double vec[N], int p){
	int i;
	double s=0;
	for(i=0;i<N;i++)
		s+=pow(vec[i],(double)p);
	return pow(s,1.0/p);
}

/* Description: minus operation on vectors on Rn, res[N]=x[N]-y[N] subtracts 
 * vector x from y
 * Calling syntax: vecminus(x,y,res);
 * */
void vecminus(double x[N],double y[N],double res[N]){
	int i;
	for(i=0;i<N;i++)
		res[i]=x[i]-y[i];
}

/* Description: plus operation on vectors on Rn, res[N]=x[N]+y[N] adds
 * vectors x and y
 * Calling syntax: vecplus(x,y,res)
 * */
void vecplus(double x[N],double y[N],double res[N]){
	int i;
	for(i=0;i<N;i++)
		res[i]=x[i]+y[i];
}

/* Description: Euclidean distance between two vectors x[N] and y[N] on Rn,
 * this function depends on function vecminus() and vecnorm2().
 * Calling syntax: val=vecdist(x,y);
 * */
double vecdist(double x[N],double y[N]){
	double d[N];
	vecminus(x,y,d);
	return vecnorm2(d);
}

/* Description: inner product or element-by-element multiplication of 
 * two vectors a[N] and b[N] on Rn
 * Calling syntax: val=innerprod(a,b);
 * */
double innerprod(double a[N], double b[N]){
	int i;
	double s;
	s=0;
	for(i=0;i<N;i++)
		s+=a[i]*b[i];
	return s;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
福利一区二区在线| 亚洲a一区二区| 成人黄色综合网站| 夜夜精品视频一区二区| 51精品国自产在线| 成人av中文字幕| 日韩专区中文字幕一区二区| 精品99一区二区| 欧美日韩在线精品一区二区三区激情 | 日韩经典一区二区| 欧美精品一区二区久久久| 国产成人一区在线| 亚洲国产日韩综合久久精品| 亚洲精品一区二区三区福利| 92精品国产成人观看免费| 午夜精品视频一区| 国产欧美精品国产国产专区 | 中文字幕一区二区三区乱码在线| 欧美久久免费观看| 国产成人免费视| 麻豆精品在线看| 亚洲精品菠萝久久久久久久| 精品久久久久久久一区二区蜜臀| 欧美日韩一本到| 波多野结衣中文一区| 六月丁香婷婷久久| 日韩黄色一级片| 一区二区在线看| 久久久久久久久岛国免费| 精品三级在线观看| 色噜噜偷拍精品综合在线| 久久精品国产亚洲高清剧情介绍 | 青椒成人免费视频| 亚洲一区在线观看网站| 国产精品免费aⅴ片在线观看| 欧美伦理影视网| 欧美视频在线播放| 99精品久久久久久| 成人app下载| 国产精品影音先锋| 男人的天堂亚洲一区| 婷婷夜色潮精品综合在线| 中文字幕日本乱码精品影院| 久久无码av三级| 国产免费久久精品| 欧美精品一区二区在线播放| 欧美美女黄视频| 日韩视频一区二区三区| 欧美美女网站色| 在线不卡中文字幕| 91精品麻豆日日躁夜夜躁| 欧美视频一二三区| 91福利精品视频| 777奇米成人网| 欧美日韩国产高清一区二区三区 | 精品伊人久久久久7777人| 92国产精品观看| 成人一级黄色片| 九九**精品视频免费播放| 久久99热狠狠色一区二区| 日韩高清国产一区在线| 亚洲国产精品自拍| 日本不卡一二三区黄网| 午夜精品在线看| 婷婷久久综合九色综合绿巨人| 一区二区三区免费| 亚洲小少妇裸体bbw| 日本视频一区二区| 久久综合综合久久综合| 久久精品国产久精国产| 成人免费高清在线| www.亚洲色图| 欧美视频在线播放| 精品噜噜噜噜久久久久久久久试看| 精品国产乱码久久久久久夜甘婷婷 | 日韩欧美中文一区二区| 久久久久久久久97黄色工厂| 日韩影院免费视频| 久久99精品一区二区三区三区| 福利一区二区在线观看| 97超碰欧美中文字幕| 在线免费观看日本一区| 91精品一区二区三区在线观看| 日韩女优av电影| 亚洲国产高清aⅴ视频| 亚洲日本va午夜在线影院| 亚洲大尺度视频在线观看| 青青草国产精品97视觉盛宴| 国产精品影视在线观看| 欧美日韩综合色| 337p日本欧洲亚洲大胆精品| 精品成a人在线观看| 一区二区三区中文字幕电影| 亚洲mv在线观看| 成人午夜精品在线| 欧美视频一二三区| 久久婷婷久久一区二区三区| 亚洲gay无套男同| 国产成人综合亚洲网站| 91麻豆精东视频| 亚洲精品在线网站| 亚洲男人的天堂在线观看| 亚洲国产成人精品视频| 精品在线你懂的| 欧美亚洲高清一区二区三区不卡| 久久久五月婷婷| 亚洲国产视频直播| 国产精品自拍三区| 日韩久久免费av| 一区二区三区在线高清| 国产精品小仙女| 欧美卡1卡2卡| 国产精品美女久久久久久2018| 久久99精品久久久久久| 91福利在线播放| 国产婷婷色一区二区三区四区| 日韩成人免费电影| 91小宝寻花一区二区三区| 日韩一级免费观看| 亚洲精品第一国产综合野| 国产精品一区二区久激情瑜伽| 欧美一区二区三区小说| 一区二区三区欧美亚洲| 国产剧情一区二区| 欧美精品一区二区不卡| 天天操天天干天天综合网| 欧洲av一区二区嗯嗯嗯啊| 国产精品人人做人人爽人人添 | 国产高清不卡一区| 在线成人午夜影院| 一个色综合网站| 91免费版在线看| 国产精品久久一卡二卡| 久久激情五月激情| 日韩精品在线网站| 五月天亚洲婷婷| 99久久国产免费看| 亚洲欧美韩国综合色| 不卡视频在线看| 国产精品国产a| 东方欧美亚洲色图在线| 精品国产第一区二区三区观看体验| 国产·精品毛片| 欧美电视剧在线观看完整版| 亚洲宅男天堂在线观看无病毒| 99精品视频在线观看| 中文字幕免费一区| 懂色av中文一区二区三区| 国产校园另类小说区| 成人h版在线观看| 国产精品福利一区二区| 狠狠色综合日日| 国产精品视频一二| 国产福利91精品| 中文字幕中文字幕中文字幕亚洲无线 | 色狠狠av一区二区三区| 夜夜爽夜夜爽精品视频| 欧美色视频一区| 亚洲电影一级黄| 日韩精品一区二区三区中文精品| 天堂一区二区在线免费观看| 欧美日韩国产一二三| 亚洲午夜久久久久久久久电影院| 欧洲精品一区二区三区在线观看| 亚洲一级二级三级| 欧美美女一区二区三区| 日本aⅴ精品一区二区三区| 日韩视频在线永久播放| 国产自产2019最新不卡| 欧美高清性hdvideosex| 蜜桃91丨九色丨蝌蚪91桃色| 欧美日韩国产综合久久| 国产在线精品一区二区夜色 | 26uuu国产一区二区三区| 激情图区综合网| 欧美大片国产精品| 麻豆成人在线观看| 国产精品美女久久久久久久久久久| 91麻豆福利精品推荐| 秋霞av亚洲一区二区三| 欧美极品aⅴ影院| 大尺度一区二区| 天天操天天干天天综合网| 久久综合狠狠综合久久综合88| 一本色道a无线码一区v| 日韩中文字幕亚洲一区二区va在线| 日韩免费电影网站| av在线不卡免费看| 午夜在线成人av| 国产亚洲综合性久久久影院| 99久久久无码国产精品| 香蕉影视欧美成人| 91精品国产免费| 99久久伊人精品| 懂色中文一区二区在线播放| 亚洲制服丝袜一区| 久久精品视频免费观看| 欧美人狂配大交3d怪物一区| 狠狠色丁香婷综合久久| 成人免费小视频|