2016-10-31 5 views
0

좋아요, 나는 수학적으로 더 낮은 항으로 축소 할 수없는 매우 기묘한 함수를 가지고 있습니다. (e^x + y^(십진 지수) * (x + y)) = 일정하지만 거기에도 많은 불쾌한 계수가없는 것Python : 방정식의 정의 된 도메인을 통해 순서쌍을 구하십시오.

그래서 나는 값을 얻을 수 있기를 원합니다. 이 기능은 특정 도메인에서 작동하지만 sympy의 해결 기능은이 문제에 매우 느립니다. (지수에 소수점이 더 필요하기 때문에 실행 시간이 매우 빨리 줄어 듭니다.)

아마도 그래프 작성 유틸리티를 사용하면 도움이 될 것이라고 생각합니다. 그래픽 유틸리티는 함수의 한 점의 값을 매우 빨리 나타낼 수 있습니다 ... 맞습니까?

이걸 찾았습니다 : http://docs.sympy.org/latest/modules/plotting.html하지만 점이나 목록의 사전을 반환하는 방법이 없습니다. 포인트 또는 아무것도 t 모자가 나를 도울 수있어.

도움을 주시면 미리 감사드립니다.

+0

문제 설명이 명확하지 않다. "...이 기능에서 가치를 얻는다"는 것은 무엇을 의미합니까? 지금까지 시도한 것을 보여주는 [최소 작업 예제] (http://stackoverflow.com/help/mcve)를 제공해주십시오. – Stelios

+0

수치 해석을 위해'nsolve'를 사용해보십시오. – asmeurer

답변

0

필자는 특별한 경우 인 exp (x) + y ** 2.5 * (x + y) -5.6을 고려했다.

implicit_plot을 사용하여 이것을 묘사하는 데 걸리는 시간이 걸리며, 주어진 두 x 변수가 모두 실수 인 것으로 선언 된 경우에도 y 주어진 x를 풀 때 사용됩니다.

는하지만이 코드는 상당히 빠른 실행 :

>>> for y0 in range(10,-1,-1): 
...  solve((exp(x)+y**2.5*(x+y)-5.6).subs(y,y0),x) 
...  
[-9.98229139123526] 
[-8.97695525220895] 
[-7.96906598973219] 
[-6.95681140452222] 
[-5.93652466210639] 
[-4.89995736881455] 
[-3.82568136169838] 
[-2.64531340075502] 
[-1.07064718834697] 
[1.21836061658691] 
[1.72276659774110]