Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- /**
- * Created by endre on 5/28/17.
- *
- * It intends to prototype a method to solve non-linear equations in an iterative way.
- * f(x) = e^x - 2
- * find x for f(x) = 0
- * f'(x) = e^x
- *
- * deltaX = x_current - x_prev
- * xNext = xCurrent + deltaX
- * f(x) = f(x_current) + f'(x_current) * deltaX (f(x) = 0)
- */
- fun main(args: Array<String>) {
- fun f(x: Float):Float = Math.pow(Math.E, x.toDouble()).toFloat() - 2f
- fun df(x: Float):Float = Math.pow(Math.E, x.toDouble()).toFloat()
- var xCurrent = 0f
- for(i in 0..4) {
- println("--- Iteration: $i ---")
- println("x$i = ${xCurrent}")
- val f_xCurrent = f(xCurrent)
- println("f(x$i) = ${f_xCurrent}")
- val df_xCurrent = df(xCurrent)
- println("f'(x$i) = ${df_xCurrent}")
- val deltaX = -(f_xCurrent / df_xCurrent)
- println("deltaX = -f(x$i)/f'(x$i) = ${deltaX}")
- xCurrent += deltaX
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement