python实现施瓦茨-克里斯托费尔【全网首个】根据用户输入推测函数
上代码:
from sympy import symbols, integrate, simplify
from sympy.plotting import plotn = 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 += 1try: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 / Mw = simplify(c1*integrate(w, z) + c2)print("\n", w)
值得一提的是目前只能计算实数的,不然阿尔法太难求了
其中36到40行是用线性代数解二元方程