Write code to solve

10.C] Write code to solve \frac{dy}{dx} - 2y = 3e^x,\quad y(0) = 0 Using Taylor series at x = 0.1, 0.2, 0.3

Answer:

# Program to solve the ODE using Taylor's series method

import sympy as sp
from sympy import exp, symbols, Function, Eq, diff, display

# Define variables
x = symbols('x')
y = Function('y')(x)

# Define the differential equation dy/dx = 3*e^x + 2*y
diffeqn = Eq(y.diff(x), 3 * exp(x) + 2 * y)

# Compute successive derivatives
y1 = diffeqn.rhs
y2 = diff(y1, x)
y3 = diff(y2, x)
y4 = diff(y3, x)

# Initial values
x0 = 0
y0 = 1
h = 0.1

# Substitute initial conditions
y1_val = y1.subs({y: y0, x: x0})
y2_val = y2.subs({y: y0, x: x0, y.diff(x): y1_val})
y3_val = y3.subs({y: y0, x: x0, y.diff(x): y1_val, y.diff(x, x): y2_val})
y4_val = y4.subs({y: y0, x: x0, y.diff(x): y1_val, y.diff(x, x): y2_val, y.diff(x, x, x): y3_val})

# Construct Taylor series up to 4th order
taylor_series = y0 + y1_val * (x - x0) + (y2_val / 2) * (x - x0)**2 + \
                (y3_val / 6) * (x - x0)**3 + (y4_val / 24) * (x - x0)**4

# Display the Taylor series expression
display("Taylor's series expansion y(x) =", taylor_series)

# Evaluate y at points x0, x0+h, x0+2h
for i in range(3):
    xi = x0 + i * h
    yi = taylor_series.subs(x, xi)
    print(f"y({xi:.1f}) = {float(yi):.4f}")

Leave a Reply

Your email address will not be published. Required fields are marked *