fork download
  1. abstract class Funktion {
  2. /**
  3.   * @param args wird nicht verwendet
  4.   */
  5. double x, eps, xmax;
  6. int i = 0;
  7. abstract double f();
  8. abstract double g();
  9. abstract double e();
  10. static Funktion[] rechnen = new Funktion[10];
  11.  
  12. public void tabelle() {
  13. System.out.println();
  14. System.out.println("WERTETABELLE");
  15. do {
  16. double var1 = this.f();
  17. System.out.printf("x:%5.1f", this.x);
  18. System.out.printf(" | y:%9.3f\n", var1);
  19. this.x = this.x + this.e();
  20. // this.i++;
  21. }
  22. while (this.x <= this.xmax);
  23. }
  24.  
  25. public void newton() {
  26. System.out.println();
  27. System.out.println("Startwert: " + this.x);
  28. do {
  29. this.x = this.x - this.f() / this.g();
  30. System.out.printf("x:%12.8f", this.x);
  31. System.out.printf(" | y:%12.8f\n", this.f());
  32. this.i++;
  33. if (this.i == 25) {
  34. System.out.println("max. Iterationsanzahl erreicht, keine Loesung gefunden!");
  35. return;
  36. }
  37. }
  38. while (Math.abs(this.f()) > this.eps && this.i < 25);
  39. System.out.println("Eine Nullstelle ist naeherungsweise: " + this.x);
  40. }
  41.  
  42. public static void main(String[] args) {
  43. // Tabelle/Parabel (x-Wert[= Startwert], maximaler x-Wert, eps, a, b, c, d)
  44. rechnen[0] = new Tabelle(1.0 , 0 , 0.00000001 , 2 , -20 , -6, 30);
  45. rechnen[0].newton();
  46. rechnen[1] = new Tabelle(-2.0 , 12.0 , 0.1 , 2.0 , -20.0 , -6.0, 30.0);
  47. rechnen[1].tabelle();
  48. rechnen[2] = new Parabel(0.5 , 0 , 0.00000001 , 1.0 , 3.0 , -5.0);
  49. rechnen[2].newton();
  50. rechnen[3] = new Parabel(0.5 , 12.0 , 0.1 , 1.0 , 3.0 , -5.0);
  51. rechnen[3].tabelle();
  52. /*
  53.   * Wertetabelle hat einen Vorzeichenwechsel bei -1.3 auf -1.2 -> Nullstelle
  54.   Wertetabelle hat einen Vorzeichenwechsel bei 1.1 auf 1.2 -> Nullstelle
  55.   Wertetabelle hat einen Vorzeichenwechsel bei 10.1 auf 10.2 -> Nullstelle
  56.   */
  57. rechnen[4] = new Tabelle(-2 , 0 , 0.00000001 , 2 , -20 , -6, 30);
  58. rechnen[4].newton();
  59. rechnen[5] = new Tabelle(1 , 0 , 0.00000001 , 2 , -20 , -6, 30);
  60. rechnen[5].newton();
  61. rechnen[6] = new Tabelle(50 , 0 , 0.00000001 , 2 , -20 , -6, 30);
  62. rechnen[6].newton();
  63. }
  64. }
  65.  
  66. class Parabel extends Funktion {
  67. double a, b, c;
  68. public Parabel(double x, double xmax, double eps, double a, double b, double c) {
  69. this.x = x;
  70. this.xmax = xmax;
  71. this.eps = eps;
  72. this.a = a;
  73. this.b = b;
  74. this.c = c;
  75. }
  76. public double f() {
  77. return this.a * x * x + this.b * x + this.c;
  78. }
  79. public double g() {
  80. return 2 * this.a * x + this.b;
  81. }
  82. public double e() {
  83. return eps;
  84. }
  85. }
  86.  
  87. class Tabelle extends Funktion {
  88. double a, b, c, d;
  89. Tabelle(double x, double xmax, double eps, double a, double b, double c, double d) {
  90. this.x = x;
  91. this.xmax = xmax;
  92. this.eps = eps;
  93. this.a = a;
  94. this.b = b;
  95. this.c = c;
  96. this.d = d;
  97. }
  98. public double f() {
  99. return this.a * x * x * x + this.b * x * x + this.c * x + this.d;
  100. }
  101. public double g() {
  102. return this.a * 3 * x * x + this.b * 2 * x + this.c;
  103. }
  104. public double e() {
  105. return eps;
  106. }
  107. }
  108.  
  109.  
Success #stdin #stdout 0.16s 380864KB
stdin
Standard input is empty
stdout
Startwert: 1.0
x:  1.15000000  |  y: -0.30825000
x:  1.14300465  |  y: -0.00064173
x:  1.14299003  |  y: -0.00000000
Eine Nullstelle ist naeherungsweise: 1.14299002799743

WERTETABELLE
x: -2.0  |  y:  -54.000
x: -1.9  |  y:  -44.518
x: -1.8  |  y:  -35.664
x: -1.7  |  y:  -27.426
x: -1.6  |  y:  -19.792
x: -1.5  |  y:  -12.750
x: -1.4  |  y:   -6.288
x: -1.3  |  y:   -0.394
x: -1.2  |  y:    4.944
x: -1.1  |  y:    9.738
x: -1.0  |  y:   14.000
x: -0.9  |  y:   17.742
x: -0.8  |  y:   20.976
x: -0.7  |  y:   23.714
x: -0.6  |  y:   25.968
x: -0.5  |  y:   27.750
x: -0.4  |  y:   29.072
x: -0.3  |  y:   29.946
x: -0.2  |  y:   30.384
x: -0.1  |  y:   30.398
x:  0.0  |  y:   30.000
x:  0.1  |  y:   29.202
x:  0.2  |  y:   28.016
x:  0.3  |  y:   26.454
x:  0.4  |  y:   24.528
x:  0.5  |  y:   22.250
x:  0.6  |  y:   19.632
x:  0.7  |  y:   16.686
x:  0.8  |  y:   13.424
x:  0.9  |  y:    9.858
x:  1.0  |  y:    6.000
x:  1.1  |  y:    1.862
x:  1.2  |  y:   -2.544
x:  1.3  |  y:   -7.206
x:  1.4  |  y:  -12.112
x:  1.5  |  y:  -17.250
x:  1.6  |  y:  -22.608
x:  1.7  |  y:  -28.174
x:  1.8  |  y:  -33.936
x:  1.9  |  y:  -39.882
x:  2.0  |  y:  -46.000
x:  2.1  |  y:  -52.278
x:  2.2  |  y:  -58.704
x:  2.3  |  y:  -65.266
x:  2.4  |  y:  -71.952
x:  2.5  |  y:  -78.750
x:  2.6  |  y:  -85.648
x:  2.7  |  y:  -92.634
x:  2.8  |  y:  -99.696
x:  2.9  |  y: -106.822
x:  3.0  |  y: -114.000
x:  3.1  |  y: -121.218
x:  3.2  |  y: -128.464
x:  3.3  |  y: -135.726
x:  3.4  |  y: -142.992
x:  3.5  |  y: -150.250
x:  3.6  |  y: -157.488
x:  3.7  |  y: -164.694
x:  3.8  |  y: -171.856
x:  3.9  |  y: -178.962
x:  4.0  |  y: -186.000
x:  4.1  |  y: -192.958
x:  4.2  |  y: -199.824
x:  4.3  |  y: -206.586
x:  4.4  |  y: -213.232
x:  4.5  |  y: -219.750
x:  4.6  |  y: -226.128
x:  4.7  |  y: -232.354
x:  4.8  |  y: -238.416
x:  4.9  |  y: -244.302
x:  5.0  |  y: -250.000
x:  5.1  |  y: -255.498
x:  5.2  |  y: -260.784
x:  5.3  |  y: -265.846
x:  5.4  |  y: -270.672
x:  5.5  |  y: -275.250
x:  5.6  |  y: -279.568
x:  5.7  |  y: -283.614
x:  5.8  |  y: -287.376
x:  5.9  |  y: -290.842
x:  6.0  |  y: -294.000
x:  6.1  |  y: -296.838
x:  6.2  |  y: -299.344
x:  6.3  |  y: -301.506
x:  6.4  |  y: -303.312
x:  6.5  |  y: -304.750
x:  6.6  |  y: -305.808
x:  6.7  |  y: -306.474
x:  6.8  |  y: -306.736
x:  6.9  |  y: -306.582
x:  7.0  |  y: -306.000
x:  7.1  |  y: -304.978
x:  7.2  |  y: -303.504
x:  7.3  |  y: -301.566
x:  7.4  |  y: -299.152
x:  7.5  |  y: -296.250
x:  7.6  |  y: -292.848
x:  7.7  |  y: -288.934
x:  7.8  |  y: -284.496
x:  7.9  |  y: -279.522
x:  8.0  |  y: -274.000
x:  8.1  |  y: -267.918
x:  8.2  |  y: -261.264
x:  8.3  |  y: -254.026
x:  8.4  |  y: -246.192
x:  8.5  |  y: -237.750
x:  8.6  |  y: -228.688
x:  8.7  |  y: -218.994
x:  8.8  |  y: -208.656
x:  8.9  |  y: -197.662
x:  9.0  |  y: -186.000
x:  9.1  |  y: -173.658
x:  9.2  |  y: -160.624
x:  9.3  |  y: -146.886
x:  9.4  |  y: -132.432
x:  9.5  |  y: -117.250
x:  9.6  |  y: -101.328
x:  9.7  |  y:  -84.654
x:  9.8  |  y:  -67.216
x:  9.9  |  y:  -49.002
x: 10.0  |  y:  -30.000
x: 10.1  |  y:  -10.198
x: 10.2  |  y:   10.416
x: 10.3  |  y:   31.854
x: 10.4  |  y:   54.128
x: 10.5  |  y:   77.250
x: 10.6  |  y:  101.232
x: 10.7  |  y:  126.086
x: 10.8  |  y:  151.824
x: 10.9  |  y:  178.458
x: 11.0  |  y:  206.000
x: 11.1  |  y:  234.462
x: 11.2  |  y:  263.856
x: 11.3  |  y:  294.194
x: 11.4  |  y:  325.488
x: 11.5  |  y:  357.750
x: 11.6  |  y:  390.992
x: 11.7  |  y:  425.226
x: 11.8  |  y:  460.464
x: 11.9  |  y:  496.718
x: 12.0  |  y:  534.000

Startwert: 0.5
x:  1.31250000  |  y:  0.66015625
x:  1.19513889  |  y:  0.01377363
x:  1.19258362  |  y:  0.00000653
x:  1.19258240  |  y:  0.00000000
Eine Nullstelle ist naeherungsweise: 1.192582403567525

WERTETABELLE
x:  0.5  |  y:   -3.250
x:  0.6  |  y:   -2.840
x:  0.7  |  y:   -2.410
x:  0.8  |  y:   -1.960
x:  0.9  |  y:   -1.490
x:  1.0  |  y:   -1.000
x:  1.1  |  y:   -0.490
x:  1.2  |  y:    0.040
x:  1.3  |  y:    0.590
x:  1.4  |  y:    1.160
x:  1.5  |  y:    1.750
x:  1.6  |  y:    2.360
x:  1.7  |  y:    2.990
x:  1.8  |  y:    3.640
x:  1.9  |  y:    4.310
x:  2.0  |  y:    5.000
x:  2.1  |  y:    5.710
x:  2.2  |  y:    6.440
x:  2.3  |  y:    7.190
x:  2.4  |  y:    7.960
x:  2.5  |  y:    8.750
x:  2.6  |  y:    9.560
x:  2.7  |  y:   10.390
x:  2.8  |  y:   11.240
x:  2.9  |  y:   12.110
x:  3.0  |  y:   13.000
x:  3.1  |  y:   13.910
x:  3.2  |  y:   14.840
x:  3.3  |  y:   15.790
x:  3.4  |  y:   16.760
x:  3.5  |  y:   17.750
x:  3.6  |  y:   18.760
x:  3.7  |  y:   19.790
x:  3.8  |  y:   20.840
x:  3.9  |  y:   21.910
x:  4.0  |  y:   23.000
x:  4.1  |  y:   24.110
x:  4.2  |  y:   25.240
x:  4.3  |  y:   26.390
x:  4.4  |  y:   27.560
x:  4.5  |  y:   28.750
x:  4.6  |  y:   29.960
x:  4.7  |  y:   31.190
x:  4.8  |  y:   32.440
x:  4.9  |  y:   33.710
x:  5.0  |  y:   35.000
x:  5.1  |  y:   36.310
x:  5.2  |  y:   37.640
x:  5.3  |  y:   38.990
x:  5.4  |  y:   40.360
x:  5.5  |  y:   41.750
x:  5.6  |  y:   43.160
x:  5.7  |  y:   44.590
x:  5.8  |  y:   46.040
x:  5.9  |  y:   47.510
x:  6.0  |  y:   49.000
x:  6.1  |  y:   50.510
x:  6.2  |  y:   52.040
x:  6.3  |  y:   53.590
x:  6.4  |  y:   55.160
x:  6.5  |  y:   56.750
x:  6.6  |  y:   58.360
x:  6.7  |  y:   59.990
x:  6.8  |  y:   61.640
x:  6.9  |  y:   63.310
x:  7.0  |  y:   65.000
x:  7.1  |  y:   66.710
x:  7.2  |  y:   68.440
x:  7.3  |  y:   70.190
x:  7.4  |  y:   71.960
x:  7.5  |  y:   73.750
x:  7.6  |  y:   75.560
x:  7.7  |  y:   77.390
x:  7.8  |  y:   79.240
x:  7.9  |  y:   81.110
x:  8.0  |  y:   83.000
x:  8.1  |  y:   84.910
x:  8.2  |  y:   86.840
x:  8.3  |  y:   88.790
x:  8.4  |  y:   90.760
x:  8.5  |  y:   92.750
x:  8.6  |  y:   94.760
x:  8.7  |  y:   96.790
x:  8.8  |  y:   98.840
x:  8.9  |  y:  100.910
x:  9.0  |  y:  103.000
x:  9.1  |  y:  105.110
x:  9.2  |  y:  107.240
x:  9.3  |  y:  109.390
x:  9.4  |  y:  111.560
x:  9.5  |  y:  113.750
x:  9.6  |  y:  115.960
x:  9.7  |  y:  118.190
x:  9.8  |  y:  120.440
x:  9.9  |  y:  122.710
x: 10.0  |  y:  125.000
x: 10.1  |  y:  127.310
x: 10.2  |  y:  129.640
x: 10.3  |  y:  131.990
x: 10.4  |  y:  134.360
x: 10.5  |  y:  136.750
x: 10.6  |  y:  139.160
x: 10.7  |  y:  141.590
x: 10.8  |  y:  144.040
x: 10.9  |  y:  146.510
x: 11.0  |  y:  149.000
x: 11.1  |  y:  151.510
x: 11.2  |  y:  154.040
x: 11.3  |  y:  156.590
x: 11.4  |  y:  159.160
x: 11.5  |  y:  161.750
x: 11.6  |  y:  164.360
x: 11.7  |  y:  166.990
x: 11.8  |  y:  169.640
x: 11.9  |  y:  172.310
x: 12.0  |  y:  175.000

Startwert: -2.0
x: -1.44897959  |  y: -9.38134621
x: -1.30365951  |  y: -0.59981745
x: -1.29301380  |  y: -0.00315068
x: -1.29295728  |  y: -0.00000009
x: -1.29295728  |  y:  0.00000000
Eine Nullstelle ist naeherungsweise: -1.2929572821897815

Startwert: 1.0
x:  1.15000000  |  y: -0.30825000
x:  1.14300465  |  y: -0.00064173
x:  1.14299003  |  y: -0.00000000
Eine Nullstelle ist naeherungsweise: 1.14299002799743

Startwert: 50.0
x: 34.62905957  |  y:58891.17137266
x: 24.48217663  |  y:17243.67330424
x: 17.87787179  |  y:4958.55674306
x: 13.73398263  |  y:1356.22073141
x: 11.38096209  |  y:319.45604063
x: 10.36976702  |  y: 47.30502340
x: 10.15896195  |  y:  1.85740734
x: 10.14998326  |  y:  0.00330011
x: 10.14996725  |  y:  0.00000001
x: 10.14996725  |  y: -0.00000000
Eine Nullstelle ist naeherungsweise: 10.149967254256403