Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. package com.company;
  2.  
  3. import Jama.Matrix;
  4.  
  5. import java.util.Random;
  6.  
  7. public class Main {
  8.  
  9. public static void main(String[] args) {
  10. Random rand=new Random();
  11. int m=4,n=4;
  12. Matrix A=new Matrix(m,n);
  13. Matrix b= new Matrix(n,1);
  14. Matrix x= new Matrix(n,1);
  15. Matrix x1= new Matrix(n,1);
  16. Matrix D=new Matrix(m,n);
  17. Matrix R=new Matrix(m,n);
  18. Matrix I=new Matrix(m,n);
  19. Matrix D1=new Matrix(m,n);
  20. for(int i=0;i<m;i++){
  21. for(int j=0;j<n;j++){
  22. A.set(i,j,rand.nextDouble());
  23. if(i==j)A.set(i,j,A.get(i,j)+10);
  24. }
  25. }
  26. for(int j=0;j<n;j++) {
  27. b.set(j, 0, rand.nextDouble());
  28. x.set(j,0,0);
  29. x1.set(j,0,1);
  30. }
  31. for(int i=0;i<m;i++){
  32. for(int j=0;j<n;j++){
  33. if(i==j){
  34. D.set(i,j,A.get(i,j));
  35. R.set(i,j,0);
  36. I.set(i,j,1);
  37. }else {
  38. R.set(i,j,A.get(i,j));
  39. D.set(i,j,0);
  40. I.set(i,j,0);
  41. }
  42.  
  43. }
  44. }
  45. for(int i=0;i<m;i++){
  46. for(int j=0;j<n;j++){
  47. if(i==j){
  48. D1.set(i,j,1/D.get(i,j));
  49. }else {
  50. D1.set(i,j,D.get(i,j));
  51. }
  52. }
  53. }
  54. double normInf=0,norm1=0;
  55. norm1=I.minus(D1.times(A)).norm1();
  56. normInf=I.minus(D1.times(A)).normInf();
  57. for (int i=0;i<1000;i++){
  58. if(norm1>1||normInf>1){
  59. System.out.println(i);
  60. break;
  61. }
  62. if(x1.minus(x).normF()>0.000001){
  63. x1=(I.minus(D1.times(A))).times(x).plus(D1.times(b));
  64. x=x1;
  65. break;
  66. }
  67. }
  68. x.print(2,4);
  69. A.solve(b).print(2,4);
  70. System.out.println(norm1+" "+normInf);
  71. A.print(2,4);
  72. D.print(2,4);
  73. D1.print(2,4);
  74. R.print(2,4);
  75. I.print(2,4);
  76. b.print(2,4);
  77. }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement