n = 5
x1 = 0
xn = 1
h = (xn - x1) / (n - 1)
X = [i * h for i in range(n)]
P = [14 / (1 + 4 * x * (1 - x)) for x in X]
F = [-1.52 * (2 - P[i] * X[i] * (1 - X[i])) for i in range(n)]
print("X =", X)
print("P =", P)
print("F =", F)
# Создаём матрицу A
A = [[0 for j in range(n)] for i in range(n)]
for i in range(n):
for j in range(n):
if i == j:
A[i][j] = -2 / h**2 + P[i]
if i == j - 1 or i == j + 1:
A[i][j] = 1 / h**2
# Краевые условия
A[0] = [0] * n
A[0][0] = 1
F[0] = 0
A[n-1] = [0] * n
A[n-1][n-1] = 1
F[n-1] = 0
# Метод Гаусса
for i in range(n):
for k in range(i + 1, n):
q = A[k][i] / A[i][i]
for j in range(i, n):
A[k][j] = A[k][j] - q * A[i][j]
F[k] = F[k] - q * F[i]
# Обратный ход
Y = [0] * n
for i in range(n - 1, -1, -1):
s = 0
for j in range(i + 1, n):
s = s + A[i][j] * Y[j]
Y[i] = (F[i] - s) / A[i][i]
print("Y =", Y)
print("График решения:")
import matplotlib.pyplot as plt
plt.plot(X, Y)
plt.show()