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

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

?? homework1.c

?? 剛才郵箱寫錯了 冪法反冪法程序作業 帶LU分解子程序 DOLITTLE分解法等
?? C
字號:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

#define MAXLOOPS	2000	//最大迭代次數
#define AU 			2		//上半帶寬
#define AD 			2		//下半帶寬
#define AM 			5		//壓縮矩陣高度
#define AN 			501		//壓縮矩陣寬度
#define ER 			1e-12	//精度水平
#define bb 			0.16
#define cc 			-0.064
#define GetSgn(a)	((a) > 0 ? 1 : ((a) < 0 ? -1 : 0))									//符號函數
#define max3(a, b, c)	(((a) > (b) ? (a) : (b)) > (c) ? ((a) > (b) ? (a) : (b)) : (c))	//求三個數的最大值
#define min2(a, b)	((a) < (b) ? (a) : (b))												//求兩個數的最小值

void main()
{
	int PowERMethod(double *pc, int length, int endLoops, double *resultOut, int type);
	int MaxNumInVector(double *pIn, int length);
	void AMultiY(double *aii, double *inY, double *outU, int length);
	void UnitaryVector(double *pVectorIn, double *pVectorOut, int length, double numbER);
	void Doolittle(double *c, double *b, double *xOut, int length, int s, int r);
	double LU(double *z, int length, int s, int r, int flag);
	
	int true=1;
	int false=0;
	int i, j, loops;
	double c[AN*AM];	//用c壓縮存儲帶狀矩陣A
	double r1, rs, r501, d, mk, cond, det;
	double m[39];
	double tempC[AN*AM];
	
	//把帶狀矩陣A壓縮存儲為C
	for (i = 0; i < AN; i++)
	{
		c[0 * AN + i] = cc;
		c[1 * AN + i] = bb;
		c[2 * AN + i] = ( 1.64 - 0.024 * ( i + 1 ) ) * sin( 0.2 * ( i + 1 ) ) - 0.64 * exp( 0.1 / ( i + 1 ) );
		c[3 * AN + i] = bb;
		c[4 * AN + i] = cc;
	}
	c[ 0 ] = 0;
	c[ 1 ] = 0;
	c[ 1 * AN + 0 ] = 0;
	c[ 3 * AN + AN - 1 ] = 0;
	c[ 4 * AN + AN - 1 ] = 0;
	c[ 4 * AN + AN - 2 ] = 0;
	
	//冪法求最小特征值r1
	for (i = 0; i < AN * AM; i++)
	{
		tempC[i] = c[i];
	}
	loops = PowERMethod(tempC, AN, MAXLOOPS, &r1, true);
	printf("最小特征值r1\t=%1.11e 迭代次數:%d\n", r1, loops);
	
	//冪法求最大特征值,原點平移r501
	for (i = 0; i < AN * AM; i++)
	{
		tempC[i] = c[i];
		if (i >= AU * AN && i < (AU + 1) * AN)
		{
			tempC[i] -= r1;
		}
	}
	loops = PowERMethod(tempC, AN, MAXLOOPS, &r501, true);
	r501 += r1;
	printf("最大特征值r501\t= %1.11e 迭代次數: %d\n", r501, loops);
	
	//反冪法求模最小特征值rs
	for (i = 0; i < AN * AM; i++)
	{
		tempC[i] = c[i];
	}
	LU(tempC, AN, AU, AD, false);
	loops = PowERMethod(tempC, AN, MAXLOOPS, &rs, false);
	printf("模最小特征值rs\t=%1.11e 迭代次數: %d\n", rs, loops);
		
	//用原點平移的反冪法求rik
	d = (r501 - r1) / 40;
	for (j = 1; j < 40; j++)
	{
		mk = r1 + j * d;
		for (i = 0; i < AN * AM; i++)
		{
			tempC[i] = c[i];
			if (i >= AU * AN && i < (AU + 1) * AN)
			{
				tempC[i] -= mk;
			}
		}
		LU(tempC, AN, AU, AD, false);
		loops = PowERMethod(tempC, AN, MAXLOOPS, &m[j - 1], false);
		m[j - 1] += mk;
		printf("(%d)\t最接近%1.11e的特征值為%1.11e\t迭代次數: %d\n", j, mk, m[j - 1], loops);
	}
	
	//求譜范數和行列式的值
	for (i = 0; i < AN * AM; i++)
	{
		tempC[i] = c[i];
	}
	cond = fabs(r1/rs);
	det = LU(tempC, AN, AU, AD, true);
	printf("A的條件數cond(A)2 = %1.11e\n", cond);
	printf("A的行列式detA = %1.11e\n", det);
}

//冪法求最大特征值; type = true冪法; type = false反冪法
int PowERMethod(double *pc, int length, int endLoops, double *resultOut, int type)
{
	double y[AN];
	double u[AN];
	double h;
	double b1=0; 
	double b2;
	int i, k, t; 
	double aii[AN];
	for (i = 0; i < length; i++)
	{
		aii[i] = pc[AU * length + i];
	}	
	//u0設置初值
	for (i = 0; i < length; i++)
	{
		u[i] = 1;
	}
	
	for ( t = 1; t <= endLoops; t++)
	{
		k = MaxNumInVector(u, length);
		h = u[k];
		UnitaryVector(u, y, length, 1/fabs(h));

		if (type)
		{
			AMultiY(aii, y, u, length);
		}
		else
		{	
			Doolittle(pc, y, u, length, AU, AD);  	//y的值會被改變
		}

		b2 = GetSgn(h) * u[k];
		*resultOut = b2;
		if (!type)
		{
			*resultOut = 1 / b2;
		}
		
		if (t >1 && (fabs(b2 - b1) / fabs(b2) <= ER))
		{
			break;
		}
		b1 = b2;
	}
	return t;
}

//求向量中模最大的分量,返回分量的下標
int MaxNumInVector(double *pIn, int length)
{
	int i, k;
	double temp = pIn[0];
	k = 0;
	for (i = 0; i < length; i++)
	{
		if (fabs(pIn[i]) > fabs(temp))
		{
			temp = pIn[i];
			k = i;
		}
	}
	return k;
}

//矩陣A乘以向量y,結果保存在u中
void AMultiY(double *aii, double *inY, double *outU, int length)
{
	int i, j;
	for (i = 0; i < length; i++)
	{
		outU[i] = aii[i] * inY[i];
		j = i;               
		if (j - AD >= 0)
			outU[i] += cc * inY[j - AD];
		if (j - AD + 1 >= 0)
			outU[i] += bb * inY[j - AD + 1];	
		if (j + AU < length)
			outU[i] += cc * inY[j + AU];
		if (j + AU - 1 < length)
			outU[i] += bb * inY[j + AU - 1];
	}
}

//向量數乘,用于向量u歸一化
void UnitaryVector(double *pVectorIn, double *pVectorOut, int length, double numbER)
{
	int i;
	for (i = 0; i < length; i++)
	{
		pVectorOut[i] = pVectorIn[i] * numbER;
	}
}

//杜利特爾分解方法求方程組的解,結果儲存在b中
void Doolittle(double *c, double *b, double *xOut, int length, int s, int r)
{
	int i, t, max, min;
	double temp;
	for (i = 2; i <= length; i++)
	{
		temp = 0;
		max = max3(1, 1, i - r);
		for (t = max; t <= (i - 1); t++)
		{
			temp += ( c[(i - t + s) * length + t - 1] * b[t - 1] );
		}
		b[i - 1] = b[i - 1] - temp;
	}

	xOut[length - 1] = b[length - 1] / c[s * length + length - 1];
	for (i = length - 1; i >= 1; i--)
	{
		temp = 0;
		min = min2(i + s, length);
		for (t = i + 1; t <= min; t++)
		{
			temp += c[(i - t + s) * length + t - 1] * xOut[t - 1];
		}
		xOut[i - 1] = (b[i - 1] - temp) / c[s * length + i - 1];
	}
}

//LU分解,如果flag=true,返回計算的行列式值
double LU(double *z, int length, int s, int r, int flag)
{
	int i, j, k, t, max, min;
	double temp;
	for (k = 1; k <= length; k++)
	{
		min = min2(k + s, length);
		for (j = k; j <= min; j++)
		{
			temp = 0;
			max = max3(1, k - r, j - s);
			for (t = max; t <= (k - 1); t++)
			{
				temp += ( z[(k - t + s) * length + t - 1] * z[(t - j + s) * length + j - 1] );
			}
			z[(k - j + s) * length + j - 1] = z[(k - j + s) * length + j - 1] - temp;
		}
		min = min2(k + r, length);
		for (i = k + 1; i <= min && k < length; i++)
		{
			temp = 0;
			max = max3(1, i - r, k - s);
			for (t = max; t <= (k - 1); t++)
			{
				temp += ( z[(i - t + s) * length + t - 1] * z[(t - k + s) * length + k - 1] );
			}
			z[(i - k + s) * length + k - 1] = (z[(i - k + s) * length + k - 1] - temp) / z[s * length + k - 1];
		}
	}

	if (flag)
	{
		temp =	1;
		for (i = 0; i < length; i ++)
		{
			temp *= z[s * length + i];
		}
		return temp;
	}
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合成人在线| 亚洲国产精品二十页| 欧美色成人综合| 色94色欧美sute亚洲13| 欧美亚洲国产bt| 欧美性高清videossexo| 波波电影院一区二区三区| 无码av中文一区二区三区桃花岛| 国产精一区二区三区| 99精品桃花视频在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 91久久精品日日躁夜夜躁欧美| 国产福利精品导航| 老司机免费视频一区二区| 青青草97国产精品免费观看| 国产精品嫩草99a| 日韩西西人体444www| 成人av资源下载| 国产色一区二区| 国产毛片一区二区| 国产精品国产三级国产三级人妇| 欧洲一区在线观看| 亚洲美女在线国产| 亚洲第一激情av| 日韩视频国产视频| 日韩精品一区二区三区中文不卡| 欧美日韩视频在线第一区| 国产精品传媒在线| 成人小视频免费在线观看| 国产亚洲欧美日韩日本| 国产精品亚洲一区二区三区在线 | 国产精品自拍av| 舔着乳尖日韩一区| 亚洲最快最全在线视频| 国产在线视视频有精品| 欧美性色aⅴ视频一区日韩精品| 精品国产乱码久久| 中文字幕视频一区| 久久精品二区亚洲w码| 欧美中文字幕亚洲一区二区va在线 | 五月婷婷久久丁香| 亚洲欧美一区二区在线观看| 国产日韩精品一区| 亚洲综合成人在线| 亚洲一区精品在线| 蜜桃av一区二区在线观看| 福利一区二区在线观看| 欧美成人国产一区二区| 欧美日韩亚洲综合一区 | 国产美女在线观看一区| 欧美一区二区三区四区视频| 亚洲一区二区三区国产| 色哟哟国产精品| 亚洲高清不卡在线观看| 91麻豆福利精品推荐| 中文字幕日韩一区二区| 国产精品夜夜嗨| 国产精品丝袜91| 99国产精品久久| 3d动漫精品啪啪一区二区竹菊| 男女男精品网站| 91麻豆123| 久久女同精品一区二区| 国产午夜亚洲精品不卡| 一区二区三区国产精品| 99国产欧美久久久精品| 综合中文字幕亚洲| 欧美综合色免费| 秋霞国产午夜精品免费视频| 国产午夜精品久久| 欧美三级午夜理伦三级中视频| 激情欧美日韩一区二区| 日韩精品一二三| 日韩欧美国产一二三区| 亚洲第一成人在线| 欧美一级日韩不卡播放免费| 亚洲一区二区五区| 在线不卡一区二区| 欧美96一区二区免费视频| 日韩一区二区三区四区五区六区| 日韩精品视频网| 亚洲人精品午夜| 欧美电影免费提供在线观看| 欧美日韩黄色影视| 不卡一区二区在线| 亚洲视频电影在线| 久久―日本道色综合久久| 色爱区综合激月婷婷| 国产美女精品在线| 午夜一区二区三区视频| 26uuu精品一区二区在线观看| 国产精品白丝jk白祙喷水网站| 中文字幕在线免费不卡| 中文字幕欧美激情| 国产欧美精品一区aⅴ影院| 日韩女优电影在线观看| 在线观看亚洲精品| 99re热这里只有精品视频| 蜜桃一区二区三区在线观看| 日韩在线一二三区| 视频一区二区中文字幕| 亚洲私人影院在线观看| 国产精品久久久久久久久晋中| 精品久久久久久无| 久久久久久免费网| 欧美精品久久一区二区三区| 3d动漫精品啪啪一区二区竹菊| 欧美人牲a欧美精品| 99久久99久久免费精品蜜臀| 91网站黄www| 欧美日韩视频在线一区二区| 在线观看欧美日本| 欧美性受xxxx黑人xyx性爽| 欧美片在线播放| 日韩一区二区视频| 国产精品美女久久久久久久| 中文字幕一区二区视频| 亚洲午夜国产一区99re久久| 日韩av二区在线播放| 成人一区在线看| 在线观看av不卡| 欧美一区二区播放| 亚洲区小说区图片区qvod| 天天av天天翘天天综合网| 国产一区二区三区四区五区美女| 成人av免费在线观看| 日韩欧美成人激情| 一区二区三区四区在线| 极品尤物av久久免费看| 在线亚洲精品福利网址导航| 精品国产乱码久久久久久蜜臀 | 91色九色蝌蚪| 久久亚洲私人国产精品va媚药| 成人免费在线观看入口| 激情综合色丁香一区二区| 在线视频国内自拍亚洲视频| 久久精品人人做人人综合| 久久不见久久见免费视频1| 欧美视频一区在线观看| 亚洲激情男女视频| 92精品国产成人观看免费| 国产女主播一区| 一区二区三区免费| 色综合色狠狠天天综合色| 国产三级一区二区三区| 国产一二三精品| 国产亚洲人成网站| 国产99精品国产| 国产精品久久久久影院老司| 91网站黄www| 性久久久久久久久| 日韩欧美在线影院| 国内精品视频一区二区三区八戒| 欧美精品在线视频| 日本国产一区二区| 2023国产精华国产精品| 国产真实精品久久二三区| 久久色.com| 99麻豆久久久国产精品免费优播| 一色桃子久久精品亚洲| 欧美少妇xxx| 国产高清久久久| 中文字幕一区二区三区不卡| 91国在线观看| 日韩av一区二区三区四区| 久久精品日韩一区二区三区| 欧美性感一区二区三区| 亚洲一区影音先锋| 久久婷婷综合激情| 欧美三级欧美一级| 成人午夜激情影院| 视频一区视频二区中文| 欧美国产在线观看| 欧美v日韩v国产v| 欧美日本国产视频| 欧美性色黄大片手机版| 成人h精品动漫一区二区三区| 久久电影网站中文字幕| 亚洲一区欧美一区| 亚洲另类春色国产| 日本一区二区三区久久久久久久久不 | 91精品综合久久久久久| 成人av先锋影音| 国产一区二区在线观看视频| 午夜欧美在线一二页| 性做久久久久久免费观看| 亚洲视频每日更新| 国产精品久久毛片a| 欧美高清一级片在线观看| 久久综合五月天婷婷伊人| 91精品国产品国语在线不卡| 在线亚洲欧美专区二区| 美女性感视频久久| 婷婷久久综合九色综合绿巨人| 国产拍欧美日韩视频二区| 国产精品水嫩水嫩| 一区二区在线观看视频在线观看| 精品对白一区国产伦| 国产欧美日韩精品一区| 久久久久久久精|