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


#Пользовательские функции пайтон
a=5
A=[]
for i in range(3):
    A.append([0 for j in range(3)])
A
def matr_jest(n, h, R):
    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*R[i]/(h)**2
            elif j==i+1 or j==i-1:
                A[i][j]=-R[i]/(h)**2
    return A
import numpy as np
n=int(input('задайте число узлов n='))
x0=int(input('Введите значение левой границы x0='))
xn=int(input('Введите значение правой границы xn='))
h=(xn-x0)/(n-1)
X=[i*h for i in range(n)]
R=[((6+24)/2)*x*(1-x) for x in X]
A=matr_jest(n,h,R)
E=float(input('Введите модуль упругости E='))
import numpy as np
V0=np.ones(n)
V0[0],V0[n-1]=0,0
Lambda0=np.sqrt(sum([v**2 for v in V0]))
A=np.array(A)
A[0],A[n-1]=0,0
A[:,0],A[:,n-1]=0,0
A[0][0],A[n-1][n-1]=1,1
invA=np.linalg.inv(A)
k=Lambda0
c=1
while k>E:
    c+=1
    y1=np.dot(1/Lambda0,V0)
    V1=np.dot(invA,y1)
    Lambda1=np.sqrt(sum([v**2 for v in V1]))
    k=abs(Lambda1-Lambda0)
    V0=V1
    Lambda0=Lambda1
    Pkr=round(1/Lambda1,3)
print('Количество итераций:',c)
print('Prk=',Pkr)