C語言編寫雅可比迭代 - 免費下載

源碼資源 文件大小:13 K

?? 資源詳細信息

文件格式
DOCX
所屬分類
上傳用戶
上傳時間
文件大小
13 K
所需積分
2 積分
推薦指數(shù)
??? (3/5)

?? 溫馨提示:本資源由用戶 大萌萌撒 上傳分享,僅供學習交流使用。如有侵權(quán),請聯(lián)系我們刪除。

資源簡介

# include<stdio.h>
# include<math.h>
# define N 3

main(){
    float NF2(float *x,float *y);
    float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}};
    float b[N]={7.2,8.3,4.2},sum=0;
    float x[N]= {0,0,0},y[N]={0},x0[N]={};
    int i,j,n=0;
    for(i=0;i<N;i++)
    {
        x[i]=x0[i];
    }
    for(n=0;;n++){
                //計算下一個值
    for(i=0;i<N;i++){
        sum=0;
        for(j=0;j<N;j++){
            if(j!=i){
                sum=sum+A[i][j]*x[j];
            }
        }
        y[i]=(1/A[i][i])*(b[i]-sum);
        //sum=0;
    }
    //判斷誤差大小
        if(NF2(x,y)>0.01){
                for(i=0;i<N;i++){
        x[i]=y[i];
    }
    }
            else
            break;
    }
    printf("經(jīng)過%d次雅可比迭代解出方程組的解:\n",n+1);
    for(i=0;i<N;i++){
        printf("%f      ",y[i]);
    }
}
//求兩個向量差的二范數(shù)函數(shù)
float NF2(float *x,float *y){
int i;
float z,sum1=0;
for(i=0;i<N;i++){
    sum1=sum1+pow(y[i]-x[i],2);
}
z=sqrt(sum1);
return z;
}

立即下載此資源

提示:下載后請用壓縮軟件解壓,推薦使用 WinRAR 或 7-Zip

資源說明

?? 下載說明

  • 下載需消耗 2積分
  • 24小時內(nèi)重復下載不扣分
  • 支持斷點續(xù)傳
  • 資源永久有效

?? 使用說明

  • 下載后用解壓軟件解壓
  • 推薦 WinRAR 或 7-Zip
  • 如有密碼請查看說明
  • 解壓后即可使用

?? 積分獲取

  • 上傳資源獲得積分
  • 每日簽到免費領取
  • 邀請好友注冊獎勵
  • 查看詳情 →

相關標簽

點擊標簽查看更多相關資源:

相關資源推薦