Hãy thử cái này, tôi đảm bảo với bạn rằng nó sẽ hoạt động hoàn hảo.
import scipy.optimize as opt
from numpy import exp
import timeit
st1 = timeit.default_timer()
def f(variables) :
(x,y) = variables
first_eq = x + y**2 -4
second_eq = exp(x) + x*y - 3
return [first_eq, second_eq]
solution = opt.fsolve(f, (0.1,1))
print(solution)
st2 = timeit.default_timer()
print("RUN TIME : {0}".format(st2-st1))
->
[ 0.62034452 1.83838393]
RUN TIME : 0.0009331008900937708
FYI. như đã đề cập ở trên, bạn cũng có thể sử dụng 'xấp xỉ Broyden' bằng cách thay thế 'fsolve' bằng 'broyden1'. Nó hoạt động. Tôi đã làm nó.
Tôi không biết chính xác cách tính xấp xỉ của Broyden hoạt động, nhưng phải mất 0.02 giây
Và tôi khuyên bạn không nên sử dụng các chức năng của Sympy < - tiện lợi thực sự, nhưng xét về tốc độ, nó khá chậm. Bạn sẽ thấy.
Nguồn
2017-11-04 04:01:19
'sage' có thể thực hiện việc này. – Blender
yea Tôi biết rằng .. Tôi muốn làm điều đó trong python, bởi vì tôi muốn làm điều đó lặp đi lặp lại cho các bộ phương trình khác nhau – AIB
Bạn có thể 'nhập khẩu sage' từ bất kỳ tập lệnh Python nào. – Blender