java解线性方程组

上传人:xiao****1972 文档编号:84822388 上传时间:2019-03-05 格式:DOC 页数:8 大小:132.50KB
返回 下载 相关 举报
java解线性方程组_第1页
第1页 / 共8页
java解线性方程组_第2页
第2页 / 共8页
java解线性方程组_第3页
第3页 / 共8页
java解线性方程组_第4页
第4页 / 共8页
java解线性方程组_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《java解线性方程组》由会员分享,可在线阅读,更多相关《java解线性方程组(8页珍藏版)》请在金锄头文库上搜索。

1、Java解线性方程组方法一:高斯消去法import java.util.Scanner;public class Gauss /* * 列主元高斯消去法 */static double a;static double b;static double x;static int n;static int n2; /记录换行的次数 public static void Elimination() /消元for(int k=1;k=n-1;k+)Wrap(k);for(int i=k+1;i=n;i+)double l=aik/akk;aik=0.0;for(int j=k+1;j=1;i-) xi=

2、(bi-jisuan(i)/aii; public static double jisuan(int i) double he=0.0; for(int j=i+1;j=n;j+) he=he+xj*aij; return he; public static void Wrap(int k)/换行 double max=Math.abs(akk); int n1=k; /记住要交换的行 for(int i=k+1;imax) n1=i; max=Math.abs(aik); if(n1!=k) n2+; System.out.println(当k=+k+时,要交换的行是:+k+和+n1); f

3、or(int j=k;j=n;j+) /交换a的行 double x1; x1=akj; akj=an1j; an1j=x1; double b1; /交换b的行b1=bk;bk=bn1;bn1=b1;System.out.println(交换后:);PrintA(); public static void Determinant()/求行列式 double DM=1.0; for(int i=1;i=n;i+) double a2=aii; DM=DM*a2; double n3=(double)n2; DM=DM*Math.pow(-1.0, n3); System.out.println

4、(该方程组的系数行列式:det A = +DM); public static void PrintA()/输出增广矩阵 System.out.println(增广矩阵为:); for(int i=1;i=n;i+) for(int j=1;j=n;j+) System.out.print(aij+ ); System.out.print(bi+ ); System.out.print(n); public static void Print()/输出方程的根 System.out.println(方程组的根为:); for(int i=1;i=n;i+) System.out.println

5、(x+i+ = +xi); public static void main(String args) Scanner as=new Scanner(System.in); System.out.println(输入方程组的元数:); n=as.nextInt(); a=new doublen+1n+1; b=new doublen+1; x=new doublen+1; System.out.println(输入方程组的系数矩阵a:); for(int i=1;i=n;i+) for(int j=1;j=n;j+) aij=as.nextDouble(); System.out.println

6、(输入方程组矩阵b:); for(int i=1;i=n;i+) bi=as.nextDouble(); Elimination(); Back(); Print(); Determinant();方法二:杜里特尔法求解线性方程组import java.util.Scanner;public class Duri_Ritter /* * 杜里特尔法求解线性方程组 */static double a;static double b;static double x;static int n;public static void LU()/将系数矩阵进行LU分解for(int j=2;j=n;j+)

7、aj1=aj1/a11;for(int r=2;r=n;r+)for(int i=r;i=n;i+)ari=ari-jisuan(r,i);for(int i=r+1;i=n;i+)air=(air-jisuan1(r,i)/arr; PrintA();public static void Jie_xy()x1=b1;for(int i=2;i=1;i-)xi=(xi-jisuan3(i)/aii;PrintX(1);public static void HL()/计算系数矩阵A的行列式double cj=1.0;for(int i=1;i=n;i+)cj=cj*aii;System.out.

8、println(A的行列式:|A| = +cj);public static double jisuan(int r,int i)double Sum=0.0;for(int k=1;k=r-1;k+)Sum=Sum+ark*aki;return Sum;public static double jisuan1(int r,int i)double Sum=0.0;for(int k=1;k=r-1;k+)Sum=Sum+aik*akr;return Sum;public static double jisuan2(int i)double Sum=0.0;for(int k=1;k=i-1;

9、k+)Sum=Sum+aik*xk;return Sum;public static double jisuan3(int i)double Sum=0.0;for(int k=i+1;k=n;k+)Sum=Sum+aik*xk;return Sum;public static void PrintA()/输出矩阵ASystem.out.println(分解后的矩阵A:);for(int i=1;i=n;i+)for(int j=1;j=n;j+)System.out.print(aij+ );System.out.print(n);public static void PrintX(int

10、x1)/输出数组Xif(x1=0) System.out.println(方程组Ly=b的解为:);else System.out.println(方程组Ux=y的解为:);for(int i=1;i=n;i+)if(x1=0)System.out.print(y+i+ = +xi+ );else System.out.print(x+i+ = +xi+ );System.out.print(n);public static void main(String args) Scanner as=new Scanner(System.in); System.out.println(输入方程组的元数:); n=as.nextInt(); a=new doublen+1n+1; b=new doublen+1; x=new doublen+1; System.out.println(输入方程组的系数矩阵a:); for(int i=1;i=n;i+) for(int j=1;j=n;j+) aij=as.nextDoubl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号