diff --git a/Schrick-Noah_Project-2.R b/Schrick-Noah_Project-2.R index e792b04..0622f4f 100644 --- a/Schrick-Noah_Project-2.R +++ b/Schrick-Noah_Project-2.R @@ -26,7 +26,6 @@ findZeroBisect <- function(func, xl, xr, tol, maxsteps=1e6){ fun.a <- function(x) {x^2-2} fun.a.string <- "x^2-2=0" sqrt2.estimate <- findZeroBisect(fun.a.string,1,2,1e-6) -sqrt2.estimate[1] # Plot 1a if (!require("ggplot2")) install.packages("ggplot2") library(ggplot2) @@ -43,9 +42,7 @@ ggplot(data.frame(x=seq(1,2,.1)), aes(x)) + fun.b <- function(x) {-3+x+2*exp(-x)} fun.b.string <- "-3+x+2*exp(-x)=0" fun.b.estimate.left <- findZeroBisect(fun.b,-2.5,0,1e-6) -fun.b.estimate.left[1] fun.b.estimate.right <- findZeroBisect(fun.b,1,4,1e-6) -fun.b.estimate.right[1] # Plot 1b ggplot(data.frame(x=seq(-2.5,5,.1)), aes(x)) + stat_function(fun=fun.b, aes(col=fun.b.string)) + @@ -62,7 +59,6 @@ ggplot(data.frame(x=seq(-2.5,5,.1)), aes(x)) + fun.c <- function(x) {x^3-sin(x)^2} fun.c.string <- "x^3-sin(x)^2=0" fun.c.estimate <- findZeroBisect(fun.c,0.5,1,1e-6) -fun.c.estimate[1] # Plot 1c ggplot(data.frame(x=seq(0.5,1,.1)), aes(x)) + stat_function(fun=fun.c, aes(col=fun.c.string)) + @@ -73,4 +69,59 @@ ggplot(data.frame(x=seq(0.5,1,.1)), aes(x)) + xlab("x") + ylab("Zero Function") + theme(text = element_text(size=20), plot.title = element_text(hjust = 0.5)) +## Part 2: Relaxation Method +findZeroRelax <- function(g, x.guess, tol=1e-6, maxsteps=1e6){ + steps <- 0 + x.old <- x.guess + isConverged <- FALSE + while (!isConverged){ + x.new <- g(x.old) + if(steps >= maxsteps || (abs(x.new-x.old)