Advertisement
ebak32

Pityke Ormester

May 28th, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.94 KB | None | 0 0
  1. package main
  2.  
  3. /**
  4.  * Created by endre on 5/28/17.
  5.  *
  6.  * It intends to prototype a method to solve non-linear equations in an iterative way.
  7.  * f(x) = e^x - 2
  8.  * find x for f(x) = 0
  9.  * f'(x) = e^x
  10.  *
  11.  * deltaX = x_current - x_prev
  12.  * xNext = xCurrent + deltaX
  13.  * f(x) = f(x_current) + f'(x_current) * deltaX  (f(x) = 0)
  14.  */
  15.  
  16.  
  17. fun main(args: Array<String>) {
  18.     fun f(x: Float):Float = Math.pow(Math.E, x.toDouble()).toFloat() - 2f
  19.     fun df(x: Float):Float = Math.pow(Math.E, x.toDouble()).toFloat()
  20.  
  21.     var xCurrent = 0f
  22.     for(i in 0..4) {
  23.         println("--- Iteration: $i ---")
  24.         println("x$i = ${xCurrent}")
  25.         val f_xCurrent = f(xCurrent)
  26.         println("f(x$i) = ${f_xCurrent}")
  27.         val df_xCurrent = df(xCurrent)
  28.         println("f'(x$i) = ${df_xCurrent}")
  29.         val deltaX = -(f_xCurrent / df_xCurrent)
  30.         println("deltaX = -f(x$i)/f'(x$i) = ${deltaX}")
  31.         xCurrent += deltaX
  32.     }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement