私はMatlab関数を作成しました。私はPythonに変換してWebアプリケーションで使用したいと思います。MatlabからPythonへ - Solve関数
OMPCを使用して、ほとんどすべてを.mファイルから.pyファイルに変換しました。 しかし、私はsolve()
関数を動作させることができません(私はsympyライブラリを使用しています)。
これは、Matlabのラインです:
SBC = solve(sqrt((xa-x)^(2)+(ya-y)^(2))-sqrt((xb-x)^(2)+(yb-y)^(2))-D12==0,sqrt((xa-x)^(2)+(ya-y)^(2))-sqrt((xc-x)^(2)+(yc-y)^(2))-D13==0,[x,y]);
そして、これは、Pythonのx
とy
はシンボルです(x = Symbol('x')
ではとy = Symbol('y')
)ラインである:私は、このPythonコードで
sbc = solve(
sqrt((xa - x) ** (2) + (ya - y) ** (2))
- sqrt((xb - x) ** (2) + (yb - y) ** (2))
- D12 == 0,
sqrt((xa - x) ** (2) + (ya - y) ** (2))
- sqrt((xc - x) ** (2) + (yc - y) ** (2))
- D13 == 0,
[x, y]
)
結果の代わりにFalse
を得る(Matlabコードでうまくいく)。
何か不足していますか?
EDIT:
そして、これで、私は[]
を取得しています:
# -*- coding: utf-8 -*-
from sympy import *
def alg(xa=None, ya=None, za=None, Ta=None, xb=None, yb=None, zb=None, Tb=None, xc=None, yc=None, zc=None, Tc=None, xd=None, yd=None, zd=None, Td=None, RSSIA=None, RSSIB=None, RSSIC=None, RSSID=None, txPower=None, n=None):
n = 2
c = 3 * 10 ** 8
TOA12 = Ta - Tb
TOA13 = Ta - Tc
TOA14 = Ta - Td
D12 = TOA12 * c
D13 = TOA13 * c
D14 = TOA14 * c
x, y = symbols('x y')
eqs = [sqrt((xa - x) ** (2) + (ya - y) ** (2)) - sqrt((xb - x) ** (2) + (yb - y) ** (2)) - D12,
sqrt((xa - x) ** (2) + (ya - y) ** (2)) - sqrt((xc - x) ** (2) + (yc - y) ** (2)) - D13]
print solve(eqs, [x, y])
alg(3,1,0,21.8898790015,4,6,0,21.8898790005,10,4,0,21.88987900009,9,0.5,0,21.889879000105,23.9,23.85,23.9,23.95,24,1)
ああ、私は参照してください。ありがとうございました。私はちょうど結果は '[]'、代わりに '{...、Y ... X}であるので、私はまだ問題がある:(これはSympyドキュメントにソルバー部分の最初の行に書いたことを見。? '任意のアイデア – Anthony
あなたが質問を編集して、あなたに私のPythonのセッションが数分後に殺されているため、' [] '?!書かれたように、私はどちらかの結果を取得していない与えコード追加することができ、あなたがしようとしあまりにも困難な方程式を解く...;) – Cleb
完了! :)私のセッションは殺されなかったが、解決するのに5秒かかる。 – Anthony