freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

線性方程組ax=b的數(shù)值計(jì)算方法實(shí)驗(yàn)-閱讀頁

2025-01-21 21:08本頁面
  

【正文】 數(shù), A為系數(shù)矩陣 , B為計(jì)算結(jié)果, N為矩陣階數(shù) float *lufact(float **A,float *B,int N) { int i,j,k。 float **U。 //生產(chǎn)保存結(jié)果的列矩陣 X float *y=new float [N]。 for(i=0。i++) //將 A轉(zhuǎn)換為 LU { for(j=i+1。j++) { c=U[j][i]/U[i][i]。k=N。 U[j][i]=c。i=N。ji。 y[i]=B[i]。i=0。ji。 x[i]=y[i]/U[i][i]。 } 《數(shù)值方法》實(shí)驗(yàn)報(bào)告 23 2 includeiostream includecmath include using namespace std。 double *x。 double *B。 double *buildB(int)。 cout請輸入矩陣的階數(shù): 。 N=N1。 B=buildB(N)。 coutx的值為: endl。i=N。 system(pause)。 } //使用 LU法求解 X的函數(shù), A為系數(shù)矩陣, B為計(jì)算結(jié)果, N為矩陣階數(shù) double *lufact(double **A,double *B,int N) { int i,j,k。 double **U。U矩陣 double *x=new double [N]。 //生 成 用于保存中間值的列矩陣Y U=A。i=N。j=N。 for(k=i。k++) U[j][k]=U[j][k]c*U[i][k]。 } } for(i=0。i++) //計(jì)算中間矩陣 Y的值 { for(j=0。j++) B[i]=B[i]y[j]*U[i][j]。 } for(i=N。i) //計(jì)算解 X的值 { for(j=N。j) y[i]=y[i]x[j]*U[i][j]。 } return x。 double **A=new double*[N]。i=N。 for(i=0。i++) //產(chǎn)生矩陣 A的元素并存儲到A[N1][N1]中 for(j=0。j++) A[i][j]=pow(double(i+1),j)。 } //用于產(chǎn)生 1*N的列矩陣 B double *buildB(int N) { int i。 //生成元素個(gè)數(shù)為 N的動(dòng)態(tài)矩陣 B N=N+1。 //產(chǎn)生矩陣的元素并儲存到B[N1]中 for(i=1。i++) B[i]=(pow(double(i+1),N)1)/i。 } 3 includeiostream includeiomanip include using namespace std。 float **LU。 float *LUsave(float**,int,int,int)。 //輸入矩陣的階數(shù) N,用于生成動(dòng)態(tài)矩陣 cinN。 float **A=new float *[N]。 float **invA=new float *[N]。i=N。 cout請輸入需要求逆矩陣的矩陣 A: endl。i=N。j=N。 for(i=0。i++) B[i]=i。 //將 A轉(zhuǎn)換為 LU矩陣 for(i=0。i++) //判斷 A是否存 在逆矩陣 { if(LU[i][i]==0) { cout矩陣 A不存在逆矩陣! endl。 return 0。i=N。 coutA的逆矩陣的值為 a: endl。i=N。j=N。 coutendl。 return 0。 float c。 float **LU。 for(i=0。i++) //將 A轉(zhuǎn)換為 LU { k=i+1。amp。 LU[i]=LU[k]。 a=B[i]。 B[k]=a。 } for(j=i+1。j++) { c=LU[j][i]/LU[i][i]。k=N。 《數(shù)值方法》實(shí)驗(yàn)報(bào)告 27 LU[j][i]=c。 //返回 LU矩陣的地址 } //此函數(shù)用于求解對 應(yīng) B的解 float *LUsave(float **LU,int n,int k,int N) { int i,j。 float *x=new float[N]。 for(i=0。i++) if(i==n) B[i]=1。 for(i=0。i++) //計(jì)算中間矩陣 Y的值 { for(j=0。j++) B[i]=B[i]y[j]*LU[i][j]。 } for(i=N。i) //計(jì)算解 X的值 { for(j=N。j) y[i]=y[i]x[j]*LU[i][j]。 } return x。 //定義用于儲存數(shù)組的類 struct typeA { 《數(shù)值方法》實(shí)驗(yàn)報(bào)告 28 double *A。 }。 double *save(typeA,typeA,int,int)。 //輸入矩陣的階數(shù) cinN。 //生成用于存放解的數(shù)組 X typeA A,B。 //存儲帶狀方程組的系數(shù) cinn1。 cout請輸入首行元素的個(gè)數(shù): 。 cout請輸入系數(shù)元素的序列: 。in1。 cout請輸入的循環(huán)個(gè)數(shù)及序列 : 。 =new double[]。i。 X=save(A,B,N,n1)。 for(i=0。i++) //輸出方程的解 coutx[i+1]=X[i]endl。 return 0。 double b。 double *X=new double [N1]。iN。 《數(shù)值方法》實(shí)驗(yàn)報(bào)告 29 double x。 //定義計(jì)算精度 double deltax=1。 //定于用于判定是否結(jié)束計(jì)算的變量 while(run) { if(deltaxdelta) //當(dāng)滿足精度時(shí)時(shí) run置假,為結(jié)束計(jì)算做準(zhǔn)備 run=false。 x=X[N1]。iN。 m=0。ji。 m++。 for(j=i+1。j++) { if(jN) b=bX[j]*[m]。 } X[i]=b/[deltan]。 if(k=) k=0。 //計(jì)算兩次計(jì)算的相對誤差 } return X。 //定義用于儲存數(shù)組的類 struct typeA { double *A。 }。 double *save(typeA,typeA,int,int)。 //輸入矩陣的階數(shù) cinN。 //生成用于存放解的數(shù)組 X typeA A,B。 //存儲帶狀方程組的系數(shù) cinn1。 cout請輸入首行元素的個(gè)數(shù): 。 cout請輸入系數(shù)元素的序列: 。in1。 cout請輸入的循環(huán)個(gè)數(shù)及序列 : 。 =new double[]。i。 X=save(A,B,N,n1)。 for(i=0。i++) //輸出方程的解 coutx[i+1]=X[i]endl。 return 0。 《數(shù)值方法》實(shí)驗(yàn)報(bào)告 31 double b。 double *X=new double [N1]。iN。 double x。 //定義 計(jì)算精度 double deltax=1。 //定于用于判定是否結(jié)束計(jì)算的變量 while(run) { if(deltaxdelta) //當(dāng)滿足精度時(shí)時(shí) run置假,為結(jié)束計(jì)算做準(zhǔn)備 run=false。 x=X[N1]。iN。 m=0。ji。 m++。 for(j=i+1。j++) { if(jN) b=bX[j]*[m]。 } X[i]=b/[deltan]。 if(k=) k=0。 //計(jì)算兩次計(jì)算的相對誤差 } return X
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1