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


import numpy as np
A = np.array(A)
A[:,0]

array([11, 21, 31])
# решение краевой задачи методом конечных разностей
#n = 5
#x1 = 0
#xn = 1
n = int(input("Введите n = "))
x1 = int(input("Введите x1 = "))
xn = int(input("Введите xn = "))
h = (xn - x1)/(n-1)
X = [i*h for i in range (n)]
P = [11/(1+4*x*(1-x)) for x in X]
F = [(-35/25)*(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()