To Know more about the Newton-Raphson Method , check out the wiki
https://en.wikipedia.org/wiki/Newton%27s_method
object wk1 {
def sqrt(Num: Double): Double ={
def sqrIr(sq: Double, Num: Double): Double =
if (Isok(sq,Num))sq
else sqrIr(improve(sq,Num),Num)
def Isok(sq: Double , Num: Double) =
scala.math.abs(sq * sq - Num) / Num < 0.001
def improve(sq: Double, Num: Double) =
(sq + Num/sq) /2
sqrIr(1.0,Num)
} //> sqrt: (Num: Double)Double
sqrt(5) //> res0: Double = 2.2360688956433634
sqrt(1067) //> res1: Double = 32.66497607490649
-----------------------------scala program---------
object Sqrt {
def main(args: Array[String]) {
println("Newton's Square root")
for (row <- 1 to 10) {
print(sqrt(row))
println()
}}
def sqrt(Num: Double): Double ={
def sqrIr(sq: Double, Num: Double): Double =
if (Isok(sq,Num))sq
else sqrIr(improve(sq,Num),Num)
def Isok(sq: Double , Num: Double) =
scala.math.abs(sq * sq - Num) / Num < 0.001
def improve(sq: Double, Num: Double) =
(sq + Num/sq) /2
sqrIr(1.0,Num)
}
}
https://en.wikipedia.org/wiki/Newton%27s_method
object wk1 {
def sqrt(Num: Double): Double ={
def sqrIr(sq: Double, Num: Double): Double =
if (Isok(sq,Num))sq
else sqrIr(improve(sq,Num),Num)
def Isok(sq: Double , Num: Double) =
scala.math.abs(sq * sq - Num) / Num < 0.001
def improve(sq: Double, Num: Double) =
(sq + Num/sq) /2
sqrIr(1.0,Num)
} //> sqrt: (Num: Double)Double
sqrt(5) //> res0: Double = 2.2360688956433634
sqrt(1067) //> res1: Double = 32.66497607490649
-----------------------------scala program---------
object Sqrt {
def main(args: Array[String]) {
println("Newton's Square root")
for (row <- 1 to 10) {
print(sqrt(row))
println()
}}
def sqrt(Num: Double): Double ={
def sqrIr(sq: Double, Num: Double): Double =
if (Isok(sq,Num))sq
else sqrIr(improve(sq,Num),Num)
def Isok(sq: Double , Num: Double) =
scala.math.abs(sq * sq - Num) / Num < 0.001
def improve(sq: Double, Num: Double) =
(sq + Num/sq) /2
sqrIr(1.0,Num)
}
}
No comments:
Post a Comment