×
Reviews 4.9/5 Order Now

Create a Program to Compute Numerical Methods in Java Assignment Solution

July 10, 2024
Dr. Marlowe Emberly
Dr. Marlowe
🇬🇧 United Kingdom
Java
Dr. Marlowe Emberly is a trailblazer in the field of computer science, having earned her PhD from the University of Cambridge, UK, renowned for its excellence in research and academia. With eight years of experience in the industry, Marlowe has completed over 800 Java Homework assignments with unparalleled dedication and expertise.
Key Topics
  • Instructions
  • Requirements and Specifications
Tip of the day
Focus on understanding the core algorithms, such as neural networks or decision trees, and use libraries like TensorFlow or PyTorch to simplify coding. Break down problems into smaller parts, test iteratively, and document your code for clarity.
News
Mojo: A programming language in the Python family, optimized for artificial intelligence applications, combining Python's usability with system-level performance.

Instructions

Objective

Write a java assignment program to compute numerical methods in the Java language. Implement algorithms such as Newton-Raphson for root finding, trapezoidal rule and Simpson's rule for numerical integration, and Euler's method for solving ordinary differential equations. Utilize Java's object-oriented features to encapsulate these methods within appropriate classes. Ensure the program handles different mathematical functions and provides accurate results. This Java assignment aims to enhance your understanding of numerical techniques while strengthening your programming skills in the context of scientific computation.

Requirements and Specifications

program to compute numerical methods in java

Source Code

QUESTION 1

from sympy import * from sympy.abc import x from sympy import Symbol import numpy as np from sympy.plotting import plot import matplotlib.pyplot as plt def a(n): return (x ** (3 * n + 1)) / (3 * n + 1) def PartA(): print("*** PART A ****") # Calculate the ratio test n = symbols('n', integer = True, positive = True) # Print simplified version of a(n+1)/a(n) simplified = simplify(a(n+1)/a(n)) print("Simplified: ") print(simplified) print() # Now calculate the limit print("Limit: ") print(limit(simplified, n, float('inf'))) print() def PartB(): print("*** PART B ****") # Calculate the ratio test n = symbols('n', integer=True, positive=True) # Print simplified version of a(n+1)/a(n) simplified = simplify(a(n + 1) / a(n)) # Now calculate the limit lim = limit(simplified, n, float('inf')) # Calculate the intervals for which x**3 < 1 interval = reduce_inequalities(lim<1) print("Interval of convergence:") print(interval) print() """ Each endpoint is 1 value far from x = 0 (-1, 1)""" def PartC(): print("*** PART C ****") # Define the function of convergence eq = 1/3 *log(x+1) - 1/6 *log(x**2-x+1) + 1/sqrt(3) *atan((2*x-1)/sqrt(3)) + pi*sqrt(3)/18 # Interval of convergence is [-1,1) # Define x values xvals = np.linspace(-1, 1-0.01, 100) yvals = lambdify(x,eq)(xvals) # Now plot plt.plot(xvals, yvals, label = 'f(x)') # Compute sq s1 = a(0) + a(1) s3 = a(0) + a(1) + a(2) + a(3) s5 = a(0) + a(1) + a(2) + a(3) + a(4) + a(5) y_s1 = lambdify(x, s1)(xvals) y_s3 = lambdify(x, s3)(xvals) y_s5 = lambdify(x, s5)(xvals) plt.plot(xvals, y_s1, label = 's1') plt.plot(xvals, y_s3, label='s3') plt.plot(xvals, y_s5, label='s5') plt.grid(True) plt.legend() plt.show() print() def PartD(): print("*** PART D ****") # Define t t = symbols('t') #Define n n = symbols('n', integer=True, positive=True) integral1 = integrate(1/(1+t**3), (t, 0, x)) integral2 = integrate((-1)**n *t**(3*n), (t, 0, x)) print(integral1) print() print(integral2) xvals = np.linspace(-1, 1 - 0.01, 100) yvals1 = lambdify(x, integral1)(xvals) yvals2 = lambdify(x, integral2)(xvals) """ From Part C), we found that the series converges to the following function: 1/3 *log(x+1) - 1/6 *log(x**2-x+1) + 1/sqrt(3) *atan((2*x-1)/sqrt(3)) + pi*sqrt(3)/18 And we see that the value of the first integral is log(x + 1)/3 - log(x**2 - x + 1)/6 + sqrt(3)*atan(2*sqrt(3)*x/3 - sqrt(3)/3)/3 + sqrt(3)*pi/18 Which are the same functions. """ if __name__ == '__main__': PartA() PartB() PartC() PartD()

QUESTION 2

from sympy import * from sympy.abc import x from sympy import Symbol import numpy as np from sympy.plotting import plot import matplotlib.pyplot as plt def a(n): return x**n *factorial(2*n)/(factorial(n)**2) def PartA(): print("*** Part A ***") # Calculate the ratio test n = symbols('n', integer=True, positive=True) # Print simplified version of a(n+1)/a(n) simplified = simplify(a(n + 1) / a(n)) print("Simplified: ") print(simplified) print() # Now calculate the limit print("Limit: ") print(limit(simplified, n, float('inf'))) print() def PartB(): print("*** Part B ***") # Calculate the ratio test n = symbols('n', integer=True, positive=True) # Print simplified version of a(n+1)/a(n) simplified = simplify(a(n + 1) / a(n)) # Now calculate the limit lim = limit(simplified, n, float('inf')) # Calculate the intervals for which x**3 < 1 interval = reduce_inequalities(lim < 1) print("Interval of convergence:") print(interval) print() def PartC(): print("*** Part C ***") # Define the function of convergence eq = 1/sqrt(1-4*x) # Interval of convergence is [-1,1) # Define x values xvals = np.linspace(-1/4, 1/4 - 0.01, 100) yvals = lambdify(x, eq)(xvals) # Now plot plt.plot(xvals, yvals, label='f(x)') # Compute sq s5 = a(0) for i in range(1, 6): s5 += a(i) s10 = a(0) for i in range(1, 11): s10 += a(i) s15 = a(0) for i in range(1, 16): s15 += a(i) y_s5 = lambdify(x, s5)(xvals) y_s10 = lambdify(x, s10)(xvals) y_s15 = lambdify(x, s15)(xvals) plt.plot(xvals, y_s5, label='s5') plt.plot(xvals, y_s10, label='s10') plt.plot(xvals, y_s15, label='s15') plt.grid(True) plt.legend() plt.show() if __name__ == '__main__': PartA() PartB() PartC()

QUESTION 3

from sympy import * from sympy import Symbol import numpy as np from sympy.plotting import plot import matplotlib.pyplot as plt # Define x as positive x = symbols('x', positive = True) def a(n): return x**(-log(n)) def PartA(): print("*** Part A ***") # Calculate the ratio test n = symbols('n', integer=True, positive=True) # Print simplified version of a(n+1)/a(n) simplified = simplify(a(n + 1) / a(n)) print("Simplified: ") print(simplified) print() # Now calculate the limit print("Limit: ") print(limit(simplified, n, float('inf'))) print() """ We see that the result of the limit is 1. This means that the Ratio Test is inconclusive """ def PartB(): print("*** Part B ***") # Calculate the ratio test n = symbols('n', integer=True, positive=True) # Define bn xx = .9 bn = abs(xx**(-log(n))) # Now, find the limit print("Limit: ") print(limit(bn, n, float('inf'))) print() """ In this case, the result is that the limit goes to infinity, which means that the series diverges """ def PartC(): print("*** Part C ***") # Calculate the ratio test n = symbols('n', integer=True, positive=True) # Define bn xx = 1.1 cn = abs(xx ** (-log(n))) # Now, find the limit print("Limit: ") print(limit(cn, n, float('inf'))) print() """ In this case, the result is that the limit goes to zero. It means that for x > 1 the series converges. """ def PartD(): print("*** Part D ***") print("There is no interval of convergence") def PartE(): print("*** Part E ***") """ Using properties of logarithms, we have that, for x = e: x^(-log(n)) = exp(-log(n)) = 1/exp(log(n)) = 1/n Then the series is: (-1)^(n+1) *(1/n) = -(-1)^n *(1/n) (-1)^n (1/n) is a known series and it is known that its sum is log(2) """ xx = exp(1) # x = e # Calulate the sum n = symbols('n', integer=True, positive=True) an = (-1)**(n+1) *xx**(-log(n)) # Define the values of n from 1 to a big number nvals = np.linspace(1, 1E6, int(1E6)) sum_result = sum(lambdify(n, an)(nvals)) # Print sum print("The calculated sum of the series is: {:.5f}".format(sum_result)) print("The expected sum of the series is: {:.5f}".format(np.log(2))) # print the value of log(2) if __name__ == '__main__': PartA() PartB() PartC() PartD() PartE()

Related Samples

At ProgrammingHomeworkHelp.com, we offer a comprehensive range of Java assignment samples to assist students in mastering the language. Our curated samples cover diverse topics like object-oriented programming, data structures, GUI development, and more. Each sample is crafted to illustrate best practices and coding techniques, aiding students in understanding complex concepts and improving their programming skills. Whether you're tackling a beginner-level assignment or diving into advanced Java applications, our samples serve as invaluable learning resources to support your academic journey.