Breaking ice with air cushion vehicle: Find the minimum pressure using Newton Raphson technique
Aim: To find the minimum pressure of an air cushion vehicle using Newton Raphson method.
Objective : Write a python script to solve for the minimum value of pressure using the newton Raphson method.
The equation for the air cushion vehicle is as follows:
Where p denotes the cushion pressure, h the thickness of ice field, r the size of air cushion, sigma the tensile strength of ice and b is related to width of ice wedge.
Take b=0.5, r = 40 feet and sigma = 150 pounds per square inch.
- Use the newton Raphson method to find out the value of pressure for h=0.6 ft.
- Find the optimal relaxation factor for this problem with the help of suitable plot.
- Tabulate the results of p for h = [0.6,1.2,1.8,2.4,3.0,3.6,4.2]
Theory: Ice sheet can be broken into small slabs with a heavy air cushion vehicle (ACV) travelling on float ice sheet at the critical speed. Ice breaking with ACV is a new ice-breaking method in In-land river which has important application in prevention of ice jam flood in the Yellow River.
Newton Raphson technique:
The Newton-Raphson method(also known as Newton’s method) is a way to quickly find a good approximation for the root of a real-valued function f(x) = 0. It uses the idea that a continuous and differentiable function can be approximated by a straight line tangent to it.
Suppose you need to find the root of a continuous, differentiable function f(x) and you know the root you are looking for is near the point x = x0. Then Newton’s method tells us that a better approximation for the root is
X1 = x0 – f(x0)/f’(x0)
This process may be repeated as many times as necessary to get the desired accuracy. In general for any x-value xn, the next value is given by
Xn+1 = xn – f(xn)/f’(xn)
Geometric representation:
Here is a picture to demonstrate what Newton’s method actually does:
We draw a tangent line to the graph of f(x) at the point x= xn. This line has slope f’(xn) and goes through the point (xn,f(xn)). Therefore it has the equation y = f’(xn)(x-xn) + f(xn). Now we find the root of this tangent line by setting y = 0 and x = xn+1 for our new approximation. Solving this equation gives us our new approximation, which is xn+1 = xn – f(xn)/f’(xn).
Python Code:
"""
Python program to determine the minimum pressure with newton raphson method
"""
import math
import matplotlib.pyplot as plt
import numpy as np
#inputs
b = 0.5 # width of ice wedge
r = 40 # size of air cushion(feet)
sigma = 150*144 # pound per square feet
h = [0.6,1.2,1.8,2.4,3.0,3.6,4.2] # thickness of air cushion(feet)
def f(p,h):
term1 = pow(p,3)*(1-pow(b,2))
term2 = (0.4*h*pow(b,2))-(sigma*pow(h,2)/pow(r,2))*pow(p,2)
term3 = ((pow(sigma,2)*pow(h,4))/(3*pow(r,4)))*p
term4 = pow((sigma*pow(h,2)/(3*pow(r,2))),3)
return term1+term2+term3-term4
def fprime(p,h):
term1 = 3*pow(p,2)*(1-pow(b,2))
term2 = (0.4*h*pow(b,2))-(sigma*pow(h,2)/pow(r,2))*(2*p)
term3 = ((pow(sigma,2)*pow(h,4))/(3*pow(r,4)))
return term1+term2+term3
P_guess = 10
tol = 1e-4
alpha = 0.6
Pressure = []
for i in h:
while(abs(f(P_guess,i)) > tol):
P_guess = P_guess - alpha*f(P_guess,i)/fprime(P_guess,i)
Pressure.append(P_guess)
print('The minimum value of the pressure at h=0.6 is:',Pressure[0])
print('The values of pressure for given thickness h = [0.6,1.2,1.8,2.4,3.0,3.6,4.2]')
print('Thickness : Pressure')
for i in range(len(h)):
print(h[i],':',Pressure[i])
plt.plot(h,Pressure)
plt.xlabel('Thickness')
plt.ylabel('Pressure')
plt.show()
# To find the optimal relaxation factor
h1 = 0.6
alpha_all = np.linspace(0.1,1.5,50)
iterations = []
for alpha in alpha_all:
iter = 1
P_guess = 10
while(abs(f(P_guess,h1)) > tol):
P_guess = P_guess - alpha*f(P_guess,h1)/fprime(P_guess,h1)
iter = iter + 1
iterations.append(iter)
plt.plot(alpha_all,iterations)
plt.xlabel('Relaxation factor')
plt.ylabel('Iterations')
plt.show()
Explanation of the code:
- The required libraries like math, matplotlib and numpy are imported.
- The input parameters like width of ice wedge, size of air cushion, sigma are defined.
- The array of thickness is also defined.
- The equation for minimum pressure is defined using a function. As the equation is long, it is divided into four terms. Then function is returned. Similarly its derivative of the function with respect to pressure is defined.
- The value of P_guess, tolerance, relaxation factor is defined. The empty array of pressure loop is defined.
- Using for and while loop, newton Raphson method is executed and the value of P_guess is appended into the Pressure array.
- The values of pressure corresponding to the thickness are printed.
- Next part is to find the optimal relaxation factor for no. of iterations
- Linspace command is used to create an array of values for relaxation factor. An empty array for iterations is defined.
- In for loop, the variable iter and P_guess is defined. Using while loop, the newton Raphson method is executed and the value of iter is appended into the iterations array.
- The values of relaxation factor and iterations are executed.
Results:


Conclusion: In graph of iterations vs relaxation factor, we can find that for the value of relaxation factor 1, the no. of iterations are less. So newton Raphson is a technique which is used to minimize a function. It helps us to solve a non-linear function where there are many parameters. The under-relaxation factor helps us to take the small steps to achieve a solution.