Загрузка данных


n = int(input("Введите n = "))
x1 = int(input("Введите x1 = "))
xn = int(input("Введите xn = "))

h = (xn - x1) / (n - 1)
X = [x1 + i*h for i in range(n)]

P = [19/(1 + 4*x*(1-x)) for x in X]
F = [-1.72*(2 - P[i]*X[i]*(1-X[i])) for i in range(n)]
P = [round(p, 3) for p in P]

import numpy as np

A = np.zeros((n, 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

F[0], F[n-1] = 0, 0
A[0], A[n-1] = 0, 0
A[:, 0], A[:, n-1] = 0, 0
A[0][0], A[n-1][n-1] = 1, 1

Y = np.dot(np.linalg.inv(A), F)

print("x1 =", x1)
print("xn =", xn)
print("F =", F)
print("P =", P)
print("A =", A)
print("Y =", Y)

import matplotlib.pyplot as plt

plt.plot(X, Y)
plt.show()