resuelve la ecuacion de viga vibrante por el método de diferencias finitas y crea un codigo en python con L=1, T=5, Nx=100, y Nt=500 la velocidad de propagacion igual a 1, las condiciones de contorno seran cero y para las condiciones iniciales es sen(x) y la funcion derivada es x al cuadrado
import numpy as np import matplotlib.pyplot as plt def f1(x): return np.sin(x) def f2(x): return x**2 L = 1 T = 5 h = L/100 k = T/500 x = np.linspace(0, L, 100+1) t = np.linspace(0, T, 500+1) u = np.zeros([len(x), len(t)]) for j in range(len(x)): u[j, 0] = f1(x[j]) u[j, 1] = f1(x[j]) + k*f2(x[j]) for i in range(len(t)-1): for j in range(1, len(x)-1): u[j, i+1] = -u[j, i-1] + 2*u[j, i] + h**2*f2(x[j]) plt.plot