Java编程初体验:列主元素高斯消去法
2016-03-11 10:03
441 查看
前不久用matlab写了一个关于列主元素高斯消元法的小程序,今天将它移植到java上,在编程过程中深深地体会到matlab在处理矩阵数组问题上的优越性(这就是它叫做矩阵实验室的原因吧),程序大体完成了1.选主元2.化为上三角3.回代 的三个主要过程,不过细节上还存在个别致命漏洞,现在先暂且放在blog上,以后有时间再更改(也希望有大神看到,指点一下小白,感激不尽)
错误之后再改吧。。。。。。
package gauss; import java.util.Scanner; public class gauss { public static void main(String args[]){ Scanner input1=new Scanner(System.in); juzhen M=new juzhen(); int A[][]; A=M.shuru(); int B[]=new int[A.length]; System.out.println("请输入常系数"); for(int i=0;i<B.length;i++){ B[i]=input1.nextInt(); } input1.close(); for(int i=0;i<A[0].length;i++){ for(int j=i;j<B.length;j++) { if (Math.abs(A[j][i])>=Math.abs(A[i][i])) { int temp=0,btemp=0; for(int k=0;k<A[0].length;k++) { temp=A[j][i]; A[j][i]=A[i][i]; A[i][i]=temp; btemp=B[j]; B[j]=B[i]; B[i]=btemp; } } } } for(int l=0;l<A.length;l++){//化为上三角矩阵 for(int k=l;k<A[0].length;k++) { A[l][k]=A[l][k]-(A[l][k]/A[l][l])*A[l][k]; B[l]=B[l]-(A[l][k]/A[l][l])*B[l]; } } int n=B.length; int sum=0; B =B /A ; n--; for(;n>=0;n--){ for(int k=n+1;k<B.length;k++){ sum=sum+A[n+1][k]*B[k]; } B =B -sum/A ; } int x[]=new int[B.length]; x=B; System.out.println("该方程的解为:"+x); } } class juzhen{ juzhen(){ } int[][] shuru (){ Scanner input=new Scanner(System.in); int m,n; System.out.println("请输入矩阵的阶数(请保证为方阵)"); m=input.nextInt(); n=input.nextInt(); int M[][]=new int[m] ; System.out.println("输入矩阵的值"); for(int i=0;i<M.length;i++) { for(int j=0;j<M[i].length;j++) M[i][j]=input.nextInt(); } input.close(); return M; } }
错误之后再改吧。。。。。。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树