Advertisement
DestBro

[Error] Lucreare Nr.2 Matematica d.

Feb 25th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. package LL2
  2.  
  3. class Interval(val a1: Double, val b1: Double)
  4.  
  5. val intervals = mutableListOf<Interval>()
  6.  
  7. fun F(x: Double) = (x * x * x) - (4 * x) - 2
  8.  
  9. fun Fdd(x: Double) = 6 * x //f'(x) = 3x^2 - 4
  10.  
  11. fun main(args: Array<String>) {
  12. intervals.add(Interval(-1.75, -1.5))
  13. intervals.add(Interval(-0.75, -0.5))
  14. intervals.add(Interval(2.0, 2.25))
  15.  
  16. val solutiileFunctiei = intervalsToSolutions(intervals)
  17.  
  18. println("\nSoluţiile funcţiei sunt: ")
  19. solutiileFunctiei.forEachIndexed { index, d ->
  20. println("$index) $d")
  21. }
  22. }
  23.  
  24. /**
  25. * Transformă lista de intervalele în listă de soluţii.
  26. * */
  27. fun intervalsToSolutions(list_i: MutableList<Interval>) = list_i.map { calcSolutionFromInterval(it) }
  28.  
  29. /**
  30. * Cercetează un interval şi returnează soluţia găsită pe acesta.
  31. * */
  32. fun calcSolutionFromInterval(i: Interval): Double {
  33. val a = i.a1
  34. val b = i.b1
  35. val e = 0.0001 //eroare
  36.  
  37. var c0 = if (F(a) * Fdd(a) > 0) b else a
  38. val p = if (F(a) * Fdd(a) > 0) a else b
  39.  
  40. var c = (c0 * F(p) - p * F(c0)) / (F(p) - F(c0))
  41. /*
  42. while (Math.abs(c - c0) > e) {
  43. c = (c0 * F(p) - p * F(c0)) / (F(p) - F(c0))
  44. println("While: " + c)
  45. }
  46. */
  47. return c
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement