Breaking Ice with Air cushion Vehicle - Find minimum pressure with Newton-Raphson method
OBJECTIVE :
- determining the minimum cushion pressure needed to break a given thickness of ice using an air-cushion vehicle, Solve by using Newton Raphson method and Write a Python code
- Use the relaxation factor of 1 and explain your results
- How will you choose the optimum relaxation factor for this case? and what is the optimum relaxation factor for this case? Show with the help of a graph, assume h = 0.6
-
Explain your results with respect to the appropriate relaxation factor
Also, create a small report summarizing your observation
WHATS IS NEWTON RAPSON METHOD?
In numerical analysis, Newton's method, also known as the Newton–Raphson method, named after Isaac Newton and Joseph Raphson, is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valued function
Newton's method in optimization
In calculus, Newton's method is an iterative method for finding the roots of a differentiable function f, which are solutions to the equation f (x) = 0. In optimization, Newton's method is applied to the derivative f ′ of a twice-differentiable function f to find the roots of the derivative (solutions to f ′(x) = 0), also known as the stationary points of f. These solutions may be minima, maxima, or saddle points.
EQUATION TO BE SOLVED :
p= cushion pressure
h =thickness
r = size of air cushion
σ = tensile strength of the ice
β = width of the ice-wedge
PROCEDURE :
In Newton Rapson, method is used to minimize the problem and get the optimize value of an equation
we are solving equations for a slope which is nonlinear, nonlinear is a curve which is
y = x^2 it is important for finding the drag coefficient values at various parameters
as to find the cd at various parameters we need a function to solve there comes CFD
and we can find the drag coefficient with the help of a nonlinear solver.
it not only calculate drag coefficient but also minimizes it
newton Rapson method is an iterative technique and is objective is to find the roots
fig.1 minimum value to be check by nuton Rapson method
guess a value of a minimum of x and calculate by the newton Rapson method it gives values near to the range or it troubleshoots the values as it is an optimization process and it can troubleshoot the values so we need to take absolute values of f(guess)
PROGRAM FOR PLOTTING HEIGHT WRT TO PRESSURE
import matplotlib.pyplot as plt
import numpy as np
import math
B =0.5 #beta
r =40
sigma = 21600
height =[0.6,1.2,1.8,2.4,3.0,3.6,4.2]
def f(p,h):
a1 = pow(p,3)*(1-pow(B,2))
a2 =(0.4*h*pow(B,2)-(sigma*pow(h,2)/pow(r,2)))*p*p
a3 = (pow(sigma,2)*pow(h,4)*p)/(3*pow(r,4))
a4 =pow((sigma*pow(h,2))/(3*pow(r,2)),3)
eq =a1+a2+a3-a4
return eq
def fprime(p,h):
b1=3*pow(p,2)*(1-B*B)
b2=2*p*((0.4*h*pow(B,2))-(sigma*pow(h,2)/(pow(r,2))))
b3=(pow(sigma,2)*pow(h,4))/(3*pow(r,4))
eq_r =b1+b2+b3
return eq_r
x_guess = 80
alpha = 1
tol =1e-5
iter =1
it =[]
p =[]
iter = 1
for h in height :
while(abs(f(x_guess,h))>tol):
x_guess = x_guess -alpha*(f(x_guess,h)/fprime(x_guess,h))
iter=iter+1
p.append(x_guess)
for i in range(0,7):
if i ==0:
print("height:p")
print(height[i],"|",p[i])
plt.plot(height,p)
plt.xlabel('height(feets)')
plt.ylabel('pressure(psi)')
plt.show()
p= to calculate
h =0.6,1.2,1.8,2.4,3.0,3.6,4.2
r = 40
σ =21600 (144*150)
β = 0.5
make a function of the formula given
calculate the values of p with h
take the derivative of the formula and again calculate the values of p with h
take a guess value of x
find the x optimized value as x guess by running the formula in for loop
print and plot height vs pressure change
fig.2 plot of height vs pressure
PROGRAM FOR PLOTTING alpha WRT TO Iteration
import matplotlib.pyplot as plt
import numpy as np
import math
B =0.5 #beta
r =40
sigma = 21600
h =[0.6]
def f(p,h):
a1 = pow(p,3)*(1-pow(B,2))
a2 =(0.4*h*pow(B,2)-(sigma*pow(h,2)/pow(r,2)))*p*p
a3 = (pow(sigma,2)*pow(h,4)*p)/(3*pow(r,4))
a4 =pow((sigma*pow(h,2))/(3*pow(r,2)),3)
eq =a1+a2+a3-a4
return eq
def fprime(p,h):
b1=3*pow(p,2)*(1-B*B)
b2=2*p*((0.4*h*pow(B,2))-(sigma*pow(h,2)/(pow(r,2))))
b3=(pow(sigma,2)*pow(h,4))/(3*pow(r,4))
eq_r =b1+b2+b3
return eq_r
x_guess = 10
alpha = np.linspace(0.01,1.99,100)
tol =1e-5
iteration =[]
p =[]
h= 0.6
iter = 1
for a in alpha :
x_guess=50
print(a)
iter=1
while(abs(f(x_guess,h))>tol):
x_guess = x_guess-a*((f(x_guess,h)/fprime(x_guess,h)))
iter=iter+1
p.append(x_guess)
iteration.append(iter)
for i in range(0,99):
if i ==0:
print("alpha:iteration")
print(alpha[i],"|",iteration[i])
plt.plot(alpha,iteration)
plt.xlabel('alpha')
plt.ylabel('iteration')
plt.show()
We have to keep all the parameters same except height we have to change as 0.6
and the range of alpha is defined as 0.1 to 1.99 in 100 values to plot alpha vs iteration
so that we get an optimized value of alpha at which iteration.
fig.3 alpha vs iteration
we got the optimum value at 13 iterations ie. 1.130000000000001
A report summarizing your observation :
we have an observation that as the guess is likely near we can get the result
the change the alpha values change the number of iteration
if we increase the iteration the as tolerance is change
and as the alpha is changing the iteration change but up to some extent so need to fix an absolute value or it will be overwritten and troubleshoot and give u a negative results
CONCLUSION :
- By using Newton Rapson method we have to determine the height and pressure values
- plotted height vs pressure
- calculated the optimized value at the what iteration it comes
- plotted alpha and iteration