您可以在 Python 中以数字方式解决此问题,而无需符号计算。
从 __future__ 导入 print_function,除法
将 numpy 导入为 np
从 numpy 导入 exp
从 scipy.integrate 导入四边形
从 scipy.optimize 导入根目录
定义 f1(a1,a2,x):
返回 exp(a1 * x + a2 * x * x * x) / (1 + x * x)
定义 f2(a1,a2,x):
返回 exp(a1 * x + a2 * x * x * x) * x
定义 g(a1, a2, f):
定义 r(x):
返回 f(a1, a2, x).real
定义 i(x):
返回 f(a1, a2, x).imag
y = quad(r, 1, 2)[0] + quad(i, 1, 2)[0] * 1j
返回 y
定义函数(Z):
a1 = Z[0] + Z[1] * 1j
a2 = Z[2] + Z[3] * 1j
y1 = g(a1, a2, f1) - 1
y2 = g(a1, a2, f2) - 1/3
返回 np.array([y1.real, y1.imag, y2.real, y2.imag])
X0 = np.array([2.0, -2.0, -0.1, 1.0])
打印(根(函数,X0,tol=1e-12))
输出:
fjac: 数组([[-0.30890916, 0.05007557, 0.09254457, 0.94525291],
[-0.12460792,-0.41710616,-0.89760745,0.06925448],
[0.41309815,-0.83196711,0.34050112,0.14573825],
[0.84758358,0.36241635,-0.26418811,0.28365668]])
有趣:数组([-2.88657986e-15,-2.49800181e-15,-1.89293026e-14,
-2.43138842e-14])
消息:“解决方案收敛。”
nfev:24
qtf: 数组([ -9.32740208e-12, 6.42466839e-12, -3.53520661e-12,
-1.78427395e-12])
r:数组([-3.43272029,0.72043771,-14.00467579,-11.98268077,
-2.65005807、13.29034808、-12.53526771、-7.04373163、
2.58188876, -7.03891799])
状态:1
成功:真
x:数组([2.08361998,-2.16305211,-0.14431126,1.20659059])
请注意,我已将第二个函数的定义更改为使用x术语而不是x^2术语,以便它与您的解决方案匹配:) 我猜这是您问题中的错字。