Login
Order Now
Support
theprogrammingassignmenthelp

Python: Evaluating A Polynomial

  • 5th Jul, 2019
  • 17:25 PM

Question 1 -

Write a program that will read in from the user a cubic polynomial f(x) (as a set of 4 coefficients), and use this to compute the derivative polynomial (i.e. compute the three coefficients of the derivative f’(x)). Then, read in a value for x from a user, and evaluate the derivative polynomial at that x. 

Code

A = float(input("Enter A coefficient: "))
B = float(input("Enter B coefficient: "))
C = float(input("Enter C coefficient: "))
D = float(input("Enter D coefficient: "))

x = float(input('Enter the value of x: '))
derivative = A * 3 * x**2 + B * 2 * x + C

print("Derivative: ", derivative)
 

 

Question 2 -

Evaluating a polynomial derivative numerically

Code

A = float(input("Enter A coefficient: "))
B = float(input("Enter B coefficient: "))
C = float(input("Enter C coefficient: "))
D = float(input("Enter D coefficient: "))

x = float(input('Enter the value of x: '))
actual_derivative = A * 3 * x**2 + B * 2 * x + C

a = 0.1
iterations = 0
value, prev_value = None, None
while True:
    prev_value = value
    left = A * (x + a)**3 + B * (x + a)**2 + C * (x + a) + D
    right = A * x**3 + B * x**2 + C * x + D
    value = (left - right) / a
    iterations += 1
    a = a / 2
    if prev_value is not None:
        diff = abs(value - prev_value)
        if diff < 1e-6:
            break
num_derivative = value

print("Actual derivative: ", actual_derivative)
print("Numerical derivative: ", num_derivative)
print("Number of iterations: ", iterations)
 

 

Question 3 -

Evaluating a more complex function.
In your own code, come up with four more complex functions (not a polynomial – e.g. use sin/cos/tan/exp/log/powers/etc.), that you do not know how to compute the derivative for analytically, but that you can evaluate.

Python Code - 

import math

print('For a function y(x) = x**exp(-x)')
x = float(input('Enter the value of x to compute the derivative: '))

a = 0.1
iterations = 0
value, prev_value = None, None
while True:
    prev_value = value
    left = (x + a)**math.exp(-(x + a))
    right = x**math.exp(-x)
    value = (left - right) / a
    iterations += 1
    a = a / 2
    if prev_value is not None:
        diff = abs(value - prev_value)
        if diff < 1e-6:
            break
num_derivative = value

print("Numerical derivative: ", num_derivative)
print("Number of iterations: ", iterations)

print('For a function y(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))')
x = float(input('Enter the value of x to compute the derivative: '))

a = 0.1
iterations = 0
value, prev_value = None, None
while True:
    prev_value = value
    left = (math.exp(x + a) - math.exp(-(x + a))) / (math.exp(x + a) + math.exp(-(x + a)))
    right = (math.exp(x) - math.exp(-x)) / (math.exp(x) + math.exp(-x))
    value = (left - right) / a
    iterations += 1
    a = a / 2
    if prev_value is not None:
        diff = abs(value - prev_value)
        if diff < 1e-6:
            break
num_derivative = value

print("Numerical derivative: ", num_derivative)
print("Number of iterations: ", iterations)

print('For a function y(x) = sin(log(x^2 + 1))')
x = float(input('Enter the value of x to compute the derivative: '))

a = 0.1
iterations = 0
value, prev_value = None, None
while True:
    prev_value = value
    left = math.sin(math.log((x + a)**2 + 1))
    right = math.sin(math.log(x**2 + 1))
    value = (left - right) / a
    iterations += 1
    a = a / 2
    if prev_value is not None:
        diff = abs(value - prev_value)
        if diff < 1e-6:
            break
num_derivative = value

print("Numerical derivative: ", num_derivative)
print("Number of iterations: ", iterations)

print('For a function y(x) = exp(-exp(exp(-x)))')
x = float(input('Enter the value of x to compute the derivative: '))

a = 0.1
iterations = 0
value, prev_value = None, None
while True:
    prev_value = value
    left = math.exp(-math.exp(math.exp(-(x + a))))
    right = math.exp(-math.exp(math.exp(-x)))
    value = (left - right) / a
    iterations += 1
    a = a / 2
    if prev_value is not None:
        diff = abs(value - prev_value)
        if diff < 1e-6:
            break
num_derivative = value

print("Numerical derivative: ", num_derivative)
print("Number of iterations: ", iterations)
 

Share this post