Program 1
Find the value of y(2) by solving the given
differential equation using RK2 Method
dy/dx = (x+y)/x
Given initial condition y(1)=2. Take h = 0.5
def f(x,y):
return (x+y)/x
x0=float(input("Enter x0 = "))
y0=float(input("Enter y0 = "))
h=float(input("Enter h = "))
n=int(input("Enter n = "))
for i in range(n):
k1=h*f(x0,y0)
k2=h*f(x0+h,y0+k1)
y1=y0+(k1+k2)*0.5
x0=x0+h
y0=y1
print("Value of y at x",round(x0,2),"is = ",round(y0,4))
import math as mt
def f(x):
return x*mt.log(x)+2*x
print("Exact value = ",round(f(2),4))
Err = abs(f(x0)-y0)
print("Error = ",Err)
Same Program :Using RK 4 Method
def f(x,y):
return (x+y)/x
x0=float(input("Enter x0 = "))
y0=float(input("Enter y0 = "))
h=float(input("Enter h = "))
n=int(input("Enter n = "))
for i in range(n):
k1=h*f(x0,y0)
k2=h*f(x0+h*0.5,y0+k1*0.5)
k3=h*f(x0+h*0.5,y0+k2*0.5)
k4=h*f(x0+h,y0+k3)
y1=y0+(1/6)*(k1+2*k2+2*k3+k4)
x0=x0+h
y0=y1
print("Value of y at x",round(x0,2),"is = ",round(y0,4))
import math as mt
def f(x):
return x*mt.log(x)+2*x
print("Exact value = ",round(f(2),4))
Err = abs(f(x0)-y0)
print("Error = ",Err)