Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package LL3
- class Interval(val a1: Double, val b1: Double)
- val intervals = mutableListOf<Interval>()
- fun F(x: Double) = (x * x * x) - (4 * x) - 2
- fun Fd(x: Double) = 3 * x * x - 4
- fun Fdd(x: Double) = 6 * x
- fun main(args: Array<String>) {
- intervals.add(Interval(-1.67578125, -1.671875))
- intervals.add(Interval(-0.54296875, -0.5390625))
- intervals.add(Interval(2.2109375, 2.21484375))
- val solutiileFunctiei = intervalsToSolutions(intervals)
- println("\nSoluţiile funcţiei sunt: ")
- solutiileFunctiei.forEachIndexed { index, d ->
- println("$index) $d")
- }
- }
- /**
- * Transformă lista de intervalele în listă de soluţii.
- * */
- fun intervalsToSolutions(list_i: MutableList<Interval>) = list_i.map { calcSolutionFromInterval(it) }
- /**
- * Cercetează un interval şi returnează soluţia găsită pe acesta.
- * */
- fun calcSolutionFromInterval(i: Interval): Double {
- val a = i.a1
- val b = i.b1
- val e = 0.0001
- var t = if (F(a) * Fdd(a) > 0) a else b
- var c = if (F(a) * Fdd(a) > 0) b else a
- while (Math.abs(t - c) > (2 * e)) {
- t -= (F(t) / Fd(t))
- c = (c * F(t) - t * F(c)) / (F(t) - F(c))
- }
- val x = (c + t) / 2
- print("x = $x ")
- println("f($x) = ${F(x)}")
- return x
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement