上代码:
from sympy import symbols, integrate, simplify
from sympy.plotting import plot
n = int(input("n:"))
if n < 2:
print("Error: Must n >= 2")
i = 0
a = []
aef = []
A = []
x, y = symbols('x y')
z, w = symbols('z w')
while i < n:
Ai = input(f"A{i}:")
A.append(float(Ai))
ai = input(f"a{i}:")
a.append(float(ai))
if i!= 0 and i!= n - 1:
aef.append(0.5)
else:
aef.append(0)
if i!= 0:
w = w*((z - a[i])**(aef[i] - 1))
else:
w = ((z - a[0])**(aef[0] - 1))
print(f"w at step {i}: {w}")
i += 1
try:
w = integrate(w, z)
print(f"Integrated w: {w}")
except Exception as e:
print(f"Error during integration: {e}")
M = w.subs(z, A[0]) - w.subs(z, A[1])
M1 = a[0] * a[1]
M2 = w.subs(z, A[0])*a[1] - w.subs(z, A[1])*a[0]
c1 = M1 / M
c2 = M2 / M
w = simplify(c1*integrate(w, z) + c2)
print("\n", w)
值得一提的是目前只能计算实数的,不然阿尔法太难求了
其中36到40行是用线性代数解二元方程