# -*- coding: utf-8 -*-
"""
Created on Tue May 26 07:56:00 2026

@author: arnau
"""

import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return t/np.log(t)

def F(t,y):
    return (t*y-y**2)/t**2

def Euler(n):
    X1 = [np.e]
    X2 = [np.e]
    Y1 = [3]
    Y2 = [3]
    pas1 = (4-np.e)/n
    pas2 = (2-np.e)/n
    for k in range(1,n+1):
        Y1.append(Y1[-1]+pas1*F(X1[-1],Y1[-1]))
        X1.append(X1[-1]+pas1)
        Y2.append(Y2[-1]+pas2*F(X2[-1],Y2[-1]))
        X2.append(X2[-1]+pas2)
    return X1,Y1,X2,Y2

T = np.linspace(2,4,200)
X1,Y1,X2,Y2 = Euler(100)
plt.plot(X1,Y1)
plt.plot(X2,Y2)
plt.plot(T,f(T),label = 'f')
plt.legend()
plt.show()