From b3f3a8ecd454359a2e992161844f2fb599f8238a Mon Sep 17 00:00:00 2001 From: prashantsinalkar Date: Fri, 4 Oct 2019 12:24:07 +0530 Subject: Initial commit/added all books --- .../CH13/EX13.10/Ex13_10.R | 53 ++++++++++++++++++++++ .../CH13/EX13.4/Ex13_4.R | 40 ++++++++++++++++ .../CH13/EX13.6/Ex13_6.R | 43 ++++++++++++++++++ .../CH13/EX13.7/Ex13_7.R | 21 +++++++++ .../CH13/EX13.8/Ex13_8.R | 30 ++++++++++++ 5 files changed, 187 insertions(+) create mode 100644 Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.10/Ex13_10.R create mode 100644 Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.4/Ex13_4.R create mode 100644 Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.6/Ex13_6.R create mode 100644 Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.7/Ex13_7.R create mode 100644 Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.8/Ex13_8.R (limited to 'Numerical_Methods_by_E_Balaguruswamy/CH13') diff --git a/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.10/Ex13_10.R b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.10/Ex13_10.R new file mode 100644 index 00000000..320eae02 --- /dev/null +++ b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.10/Ex13_10.R @@ -0,0 +1,53 @@ +# Example 10 Chapter 13 Page no.: 446 +# Milne-Simpson predictor-corrector method + +#for the solution +cat(" Milne and Simpson method") +h <- 0.25 +y <- c() +x <- c() +x[1] = 1 +y[1] = 2 + +cat("h=",h) +cat("x=",x) +cat("y=",y) + +f <- function(x,y){ + 2 * y / x +} + +#Creating algorithm and displaying +for (i in 2:10) { + + print(signif(y[i-1],3)) + m1 <- f(x[i-1],y[i-1]) + m2 <- f(x[i-1] + 0.5*h, y[i-1] + 0.5*h*m1) + m3 <- f(x[i-1] + 0.5*h, y[i-1] + 0.5*h*m2) + m4 <- f(x[i-1] + h, y[i-1] + h*m3) + x[i] <- x[i-1] + h + y[i] <- y[i-1] + h * (m1 + m4 + 2*m2 + 2*m3) / 6 + + +} + +g <- c() + +for (i in 1:3) { + g[i] <- f(x[i+1],y[i+1]) + print(g[i]) + +} + +#Milne's formula +Y1 <- y[1] + 4*h * (2*g[1] - g[2] + 2*g[3]) /3 +cat("Solution obtained using Milne's method is", Y1,3) + +g[4] <- f(x[5],Y1) +print(g[4]) + +#Simpson formula +Y2 <- y[3] + h * ( g[2] + 4*g[3] + g[4]) /3 +cat("Solution obtained using Simpson's method is", Y2,3) + +#Values are not approximated here ao value slightly differs from the textbook value \ No newline at end of file diff --git a/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.4/Ex13_4.R b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.4/Ex13_4.R new file mode 100644 index 00000000..22d907da --- /dev/null +++ b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.4/Ex13_4.R @@ -0,0 +1,40 @@ +# Example 4 Chapter 13 Page no.: 420 +# Euler Method + +#for the first solution +cat("Case A:") +h <- 0.5 +x <- 1 +y <- 2 +cat("h=",h) +#Creating algorithm and displaying +for (i in 1:2) { + + dy <- (3 * (x *x)) + 1 + y <- y + (h * dy) + x <- x + h + cat("y(",x,")= ",y,"\n") +} + +#for the second solution +cat("Case B:") +h <- 0.25 +x <- 1 +y <- 2 +cat("h=",h) + +print(x) +print(y) + +#Creating algorithm and displaying +for (i in 1:5) { + + cat("y(",x,")= ",y,"\n") + x <- x + h + dy <- (3 * ((x-h)^2)) + 1 + y <- y + (h * dy) + + +} + +#For Case B, textbook answer is false. \ No newline at end of file diff --git a/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.6/Ex13_6.R b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.6/Ex13_6.R new file mode 100644 index 00000000..63140ef0 --- /dev/null +++ b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.6/Ex13_6.R @@ -0,0 +1,43 @@ +# Example 6 Chapter 13 Page no.: 427 +# Heun Method and Euler Method + +#for the solution - Euler method +cat("Case A: Euler's Method") +h <- 0.25 +x <- 1 +y <- 2 +cat("h=",h) +cat("x=",x) +cat("y=",y) + +#Creating euler algorithm and displaying +for (i in 1:5) { + + cat("y(",x,")= ",y,"\n") + x <- x + h + f <- (2 * y / (x-h)) + y <- y + (h * f) + +} + +#for the solution - Heun's method +cat("Case B: Heun's Method") +h <- 0.25 +x <- 1 +y <- 2 +cat("h=",h) + +#Creating heun algorithm and displaying +for (i in 1:4) { + + + f1 <- (2 * y / (x)) + m <- y + h*f1 + f2 <- (2 * m / (x+h)) + y <- y + ((h/2) * (f1 + f2)) + x <- x + h + cat("y(",x,")= ",y,"\n") + +} + +#Values slightly differ but are more precise than what is given in the textbook \ No newline at end of file diff --git a/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.7/Ex13_7.R b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.7/Ex13_7.R new file mode 100644 index 00000000..f5a9d53e --- /dev/null +++ b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.7/Ex13_7.R @@ -0,0 +1,21 @@ +# Example 7 Chapter 13 Page no.: 433 +# Polygon Method + +#for the solution +cat("Polygon Method") +h <- 0.25 +x = 1 +y = 2 +cat("h=",h) +cat("x=",x) +cat("y=",y) + +#Creating algorithm and displaying +for (i in 1:3) { + + cat("y(",x,")= ",signif(y,3),"\n") + f1 <- (2 * y / x) + f2 <- (2 * (y + ( h * f1 / 2 ) ) / (x + ( h / 2 ) )) + x <- x + h + y <- y + (h * f2) +} diff --git a/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.8/Ex13_8.R b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.8/Ex13_8.R new file mode 100644 index 00000000..40f50985 --- /dev/null +++ b/Numerical_Methods_by_E_Balaguruswamy/CH13/EX13.8/Ex13_8.R @@ -0,0 +1,30 @@ +# Example 8 Chapter 13 Page no.: 439 +# Classic Runge Kutta Method + +#for the solution +cat("Classic Runge Kutta Method") +h <- 0.2 +x = 0 +y = 0 + +cat("h=",h) +cat("x=",x) +cat("y=",y) + +#Given Function +f <- function(x,y){ + x^2 + y^2 +} + +#Creating algorithm and displaying +for (i in 1:2) { + + m1 <- f(x,y) + m2 <- f(x + 0.5*h, y + 0.5*h*m1) + m3 <- f(x + 0.5*h, y + 0.5*h*m2) + m4 <- f(x + h, y + h*m3) + x <- x + h + y <- y + h * (m1 + m4 + 2*m2 + 2*m3) / 6 + cat("y(",x,")= ", signif(y,6),"\n") + +} -- cgit