資源簡介
上次傳的Jacobi迭代法解方程的資源忘了把這個代碼傳上去這次補上
代碼片段和文件信息
/*?本程序是用Jacobi迭代法解方程組?*/
/*?原方程?AX=b?迭代方程?X(k+1)=BoX(k)+f?*/
/*?Bo=I-(D-1)A?;f=(D-1)b.?(其中(D-1)表示D的逆)?*/
#include??
#?include?
#?include?
#?include?
#?define?a_ii?a[i*n+i]
#?define?a_jj?a[j*n+j]
#?define?a_ij?a[i*n+j]
#?define?a_ji?a[j*n+i]
void??ShuoMing()
{
??system(“cls“);
??printf(“\n\t*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*\n“);
??printf(“\t*?????????????????????????????????????????????*\n“);
??printf(“\t*?????????????????使用說明????????????????????*\n“);
??printf(“\t*??=========================================??*\n“);
??printf(“\t*?????????????????????????????????????????????*\n“);
??printf(“\t*?本程序是????????????????????????????????????*\n“);
??printf(“\t*???用?Jacobi?迭代法解方程組矩陣應????????????*\n“);
??printf(“\t*???滿足?Jacobi?迭代法收斂????????????????????*\n“);
??printf(“\t*?????????????????????????????????????????????*\n“);
??printf(“\t*?使用時:?系數矩陣?與?常數項?分開輸入????????*\n“);
??printf(“\t*???輸入系數矩陣時只能按行的順序輸入??????????*\n“);
??printf(“\t*???即依次按a11a12...a1n順序輸完第一行???????*\n“);
??printf(“\t*???再依次輸入第二行?依次類推直到第n行????????*\n“);
??printf(“\t*???提示輸入迭代終止條件時輸入的數據??????????*\n“);
??printf(“\t*???必需大約或等于0???????????????????????????*\n“);
??printf(“\t*?另外:為防止輸入程序出現死循環迭代將在達到???*\n“);
??printf(“\t*???10000000次時強行結束;由于各種原因可能???*\n“);
??printf(“\t*???顯示||Xn-X(n-1)||∞=1.#INF和X[i]=1.#INF???*\n“);
??printf(“\t*?更多詳情參見?使用說明文檔???????????????????*\n“);
??printf(“\t*?????????????????????????????????????????????*\n“);
??printf(“\t*?作者?E-mail?555exp@l63.com???QQ?649990777???*\n“);
??printf(“\t*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*\n“);
??printf(“\t\t請按任意鍵繼續:“);?????????
??getch();system(“cls“);
}?
double?*Get_A(int?n)
{
? int?ij;
????double?*a;
a=(double?*)malloc(sizeof(double)*n*n);
????if(a==NULL)
{
printf(“給系數矩陣分配存儲空間失敗?按任意建結束程序\n“);?
getch();
exit(0);
}??
????printf(“\n請輸入系數矩陣(按行的順序)\n“);
fflush(stdin);?????/*?清除緩沖區的數據?*/
for(i=0;i for(j=0;j scanf(“%lf“&a_ij);?
return?a;
}???????/*???Get_A?End???*/
double?*Get_b(int?n)
{
int?i;
????double?*b;
????b=(double?*)malloc(sizeof(double)*n);
if(b==NULL)
{
printf(“給常數項分配存儲空間失敗?按任意建結束程序\n“);?
getch();
exit(0);
}
printf(“請依次輸入常數項\n“);
fflush(stdin);????/*?清除緩沖區的數據?*/
for(i=0;i scanf(“%lf“&b[i]);?
return?b;
- 上一篇:21天學通C++第8版源代碼
- 下一篇:TFTP_C程序實現
評論
共有 條評論