




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java解線性方程組方法一:高斯消去法importjava.util.Scanner;publicclassGauss{ /** *@列主元高斯消去法 */ staticdoublea[][]; staticdoubleb[]; staticdoublex[]; staticintn; staticintn2;//記錄換行的次數(shù)publicstaticvoidElimination(){//消元 for(intk=1;k<=n-1;k++) { Wrap(k); for(inti=k+1;i<=n;i++) { doublel=a[i][k]/a[k][k]; a[i][k]=0.0; for(intj=k+1;j<=n;j++) a[i][j]=a[i][j]-l*a[k][j]; b[i]=b[i]-l*b[k]; } System.out.println("第"+k+"次消元后:"); PrintA(); } }publicstaticvoidBack()//回代{ x[n]=b[n]/a[n][n]; for(inti=n-1;i>=1;i--) x[i]=(b[i]-jisuan(i))/a[i][i];}publicstaticdoublejisuan(inti){ doublehe=0.0; for(intj=i+1;j<=n;j++) he=he+x[j]*a[i][j]; returnhe;}publicstaticvoidWrap(intk){//換行 doublemax=Math.abs(a[k][k]); intn1=k;//記住要交換的行 for(inti=k+1;i<=n;i++)//找到要交換的行 { if(Math.abs(a[i][k])>max){ n1=i; max=Math.abs(a[i][k]); } } if(n1!=k) { n2++; System.out.println("當(dāng)k="+k+"時(shí),要交換的行是:"+k+"和"+n1); for(intj=k;j<=n;j++)//交換a的行 { doublex1; x1=a[k][j]; a[k][j]=a[n1][j]; a[n1][j]=x1; } doubleb1;//交換b的行 b1=b[k]; b[k]=b[n1]; b[n1]=b1; System.out.println("交換后:"); PrintA(); }}publicstaticvoidDeterminant(){//求行列式 doubleDM=1.0; for(inti=1;i<=n;i++) { doublea2=a[i][i]; DM=DM*a2; } doublen3=(double)n2; DM=DM*Math.pow(-1.0,n3); System.out.println("該方程組的系數(shù)行列式:detA="+DM);}publicstaticvoidPrintA(){//輸出增廣矩陣 System.out.println("增廣矩陣為:"); for(inti=1;i<=n;i++) { for(intj=1;j<=n;j++) System.out.print(a[i][j]+""); System.out.print(b[i]+""); System.out.print("\n"); }}publicstaticvoidPrint(){//輸出方程的根 System.out.println("方程組的根為:"); for(inti=1;i<=n;i++) System.out.println("x"+i+"="+x[i]);} publicstaticvoidmain(String[]args){ Scanneras=newScanner(System.in);System.out.println("輸入方程組的元數(shù):");n=as.nextInt();a=newdouble[n+1][n+1];b=newdouble[n+1];x=newdouble[n+1];System.out.println("輸入方程組的系數(shù)矩陣a:");for(inti=1;i<=n;i++) for(intj=1;j<=n;j++) a[i][j]=as.nextDouble();System.out.println("輸入方程組矩陣b:");for(inti=1;i<=n;i++) b[i]=as.nextDouble();Elimination();Back();Print();Determinant(); }}方法二:杜里特爾法求解線性方程組importjava.util.Scanner;publicclassDuri_Ritter{ /** *@杜里特爾法求解線性方程組 */ staticdoublea[][]; staticdoubleb[]; staticdoublex[]; staticintn; publicstaticvoidLU(){//將系數(shù)矩陣進(jìn)行LU分解 for(intj=2;j<=n;j++) a[j][1]=a[j][1]/a[1][1]; for(intr=2;r<=n;r++) { for(inti=r;i<=n;i++) a[r][i]=a[r][i]-jisuan(r,i); for(inti=r+1;i<=n;i++) a[i][r]=(a[i][r]-jisuan1(r,i))/a[r][r]; } PrintA(); } publicstaticvoidJie_xy(){ x[1]=b[1]; for(inti=2;i<=n;i++) x[i]=b[i]-jisuan2(i); PrintX(0); x[n]=x[n]/a[n][n]; for(inti=n-1;i>=1;i--) x[i]=(x[i]-jisuan3(i))/a[i][i]; PrintX(1); } publicstaticvoidHL(){//計(jì)算系數(shù)矩陣A的行列式 doublecj=1.0; for(inti=1;i<=n;i++) cj=cj*a[i][i]; System.out.println("A的行列式:|A|="+cj); } publicstaticdoublejisuan(intr,inti){ doubleSum=0.0; for(intk=1;k<=r-1;k++) Sum=Sum+a[r][k]*a[k][i]; returnSum; } publicstaticdoublejisuan1(intr,inti){ doubleSum=0.0; for(intk=1;k<=r-1;k++) Sum=Sum+a[i][k]*a[k][r]; returnSum; } publicstaticdoublejisuan2(inti){ doubleSum=0.0; for(intk=1;k<=i-1;k++) Sum=Sum+a[i][k]*x[k]; returnSum; } publicstaticdoublejisuan3(inti){ doubleSum=0.0; for(intk=i+1;k<=n;k++) Sum=Sum+a[i][k]*x[k]; returnSum; } publicstaticvoidPrintA(){//輸出矩陣A System.out.println("分解后的矩陣A:"); for(inti=1;i<=n;i++) { for(intj=1;j<=n;j++) System.out.print(a[i][j]+""); System.out.print("\n"); } } publicstaticvoidPrintX(intx1){//輸出數(shù)組X if(x1==0)System.out.println("方程組Ly=b的解為:"); elseSystem.out.println("方程組Ux=y的解為:"); for(inti=1;i<=n;i++) { if(x1==0) System.out.print("y"+i+"="+x[i]+""); elseSystem.out.print("x"+i+"="+x[i]+""); } System.out.print("\n"); } publicstaticvoidmain(String[]args){ Scanneras=newScanner(System.in);System.out.println("輸入方程組的元數(shù):");n=as.nextInt();a=newdouble[n+1][n+1];b=newdouble[n+1];x=newdouble[n+1];System.out.println("輸入方程組的系數(shù)矩陣a:");for(inti=1;i<=n;i++) for(intj=1;j<=n;j++) a[i][j]=as.nextDouble();System.out.println("輸入方程組矩陣b:");for(inti=1;i<=n;i++) b[i]=as.nextDouble();LU();Jie_xy();HL(); }方法三:高斯-賽德爾迭代法求線性方程組packagecom.springworks.db4o.test;importjava.util.Scanner;publicclassGauss_Seidel{ /** *@高斯-賽德爾迭代法求線性方程組 */ staticdoublea[][]; staticdoubleb[]; staticdoublex[]; staticdoublex2[]; staticintn; staticdoublee; publicstaticvoidIT(){ intk=0; System.out.println("kx1x2x3"); System.out.print(k+""); for(inti=1;i<=n;i++) { System.out.print(x[i]+""); } System.out.println("\n"); do{ k++; for(inti=1;i<=n;i++) x2[i]=x[i];for(inti=1;i<=n;i++){ x[i]=f_x(i);}System.out.print(k+""); for(inti=1;i<=n;i++) { System.out.print(x[i]+""); } System.out.println("\n"); }while(jisuan()>=e); } publicstaticdoublejisuan(){ doublemax=0.0; for(inti=1;i<=n;i++) { doublex3=Math.abs(x[i]-x2[i]); if(x3>max)max=x3; } returnmax; } publicstaticdoublef_x(inti){//算迭代式的值 doublex1=0.0; for(intj=1;j<=n;j++) if(j!=i)x1=x1+a[i][j]*x[j]; doublex2=(b[i]-x1)/a[i][i]; returnx2; } publicstaticvoidPrint_Jie()//輸出方程組的解 { System.out.print("方程組的解為:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度項(xiàng)目負(fù)責(zé)人聘用合同(生態(tài)農(nóng)業(yè)技術(shù)引進(jìn))
- 針灸理療護(hù)理常規(guī)
- 二零二五年度智慧城市建設(shè)項(xiàng)目股份轉(zhuǎn)讓與系統(tǒng)開發(fā)協(xié)議
- 二零二五年度環(huán)保技術(shù)研發(fā)實(shí)習(xí)生勞動(dòng)合同范本
- 二零二五年度綠色建筑材料授權(quán)獨(dú)家代理協(xié)議
- 二零二五年度終止勞動(dòng)合同協(xié)議書:O公司員工P合同終止及競(jìng)業(yè)限制協(xié)議
- 二零二五年度租賃合同終止及租賃物報(bào)廢處理函
- 二零二五年度建筑工人臨時(shí)用工管理合同
- Module 2 Unit1教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版英語九年級(jí)上冊(cè)
- 2025年度寵物寄養(yǎng)及寵物心理咨詢服務(wù)合同
- 光學(xué)鏡片透光率測(cè)量基準(zhǔn)
- 有溫度的護(hù)理人
- 1《挑戰(zhàn)第一次》第1課時(shí) 說課稿 -2023-2024學(xué)年道德與法治二年級(jí)下冊(cè)統(tǒng)編版
- 預(yù)防性試驗(yàn)四措一案及施工方案
- 第十八屆“地球小博士”全國(guó)地理知識(shí)科普競(jìng)賽題庫(kù)(附答案)
- 第13課《 擴(kuò)音系統(tǒng)的控制》說課稿 2023-2024學(xué)年 浙教版六年級(jí)下冊(cè)信息科技
- 高校國(guó)有資產(chǎn)管理的三個(gè)維度與內(nèi)部控制
- 2025甘肅省事業(yè)單位聯(lián)考招聘(3141人)高頻重點(diǎn)提升(共500題)附帶答案詳解
- JJF 1176-2024(0~2 300) ℃鎢錸熱電偶校準(zhǔn)規(guī)范
- 8.4+同一直線上二力的合成課件+2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 2024年河北省邢臺(tái)市公開招聘警務(wù)輔助人員(輔警)筆試專項(xiàng)訓(xùn)練題試卷(2)含答案
評(píng)論
0/150
提交評(píng)論