質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1149閲覧

sympyを使って4点を通る球の半径を求めたい

kimtakuya_

総合スコア22

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/05/14 01:14

前提・実現したいこと

sympyを使って三次元空間中の4点を通る球の半径と中心座標を求めたいが、処理がいつまでたっても終わらない
(1時間たっても処理が終わりません、cpuは10%程pythonによって使用されています)
別のプログラムに組み込む予定なので解析的に解く必要があります

発生している問題・エラーメッセージ

なし

該当のソースコード

python

1from sympy import * 2#求めたい球の中心座標、半径 3x, y, z,r = symbols("x y z r") 4 5#球の通る4点の座標 6x1, y1, z1 = symbols("x1 y1 z1") 7x2, y2, z2 = symbols("x2 y2 z2") 8x3, y3, z3 = symbols("x3 y3 z3") 9x4, y4, z4 = symbols("x4 y4 z4") 10 11"""" 12# 試しに座標を与えるとすぐに溶けます 13x1=1 14x2=13 15x3=5 16x4=3 17y1=2 18y2=7 19y3=-2 20y4=2 21z1=4 22z2=9 23z3=134 24z4=8 25 26"""" 27 28f1 = (x-x1)**2+(y-y1)**2+(z-z1)**2-r**2 29f2 = (x-x2)**2+(y-y2)**2+(z-z2)**2-r**2 30f3 = (x-x3)**2+(y-y3)**2+(z-z3)**2-r**2 31f4 = (x-x4)**2+(y-y4)**2+(z-z4)**2-r**2 32 33s=solve([f1,f2,f3,f4],[x,y,z,r]) 34s

試したこと

試しに4点の座標を数値で与えたところ解けたのですが、一般解を求めたいです

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

結果が望んでいるものかどうかは別にして。

Python

1from sympy import * 2 3var("x y z r x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4") 4f1 = (x-x1)**2+(y-y1)**2+(z-z1)**2-r**2 5f2 = (x-x2)**2+(y-y2)**2+(z-z2)**2-r**2 6f3 = (x-x3)**2+(y-y3)**2+(z-z3)**2-r**2 7f4 = (x-x4)**2+(y-y4)**2+(z-z4)**2-r**2 8 9s = solve([f1,f2,f3,f4],[x,y,z,r]) 10s

上記のコードにて、私に手元にあった非力な i5第3世代のノートPCでも2時間ちょとで結果が出力されましたよ。

投稿2020/05/14 06:45

編集2020/05/14 06:46
magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kimtakuya_

2020/05/14 08:07

回答ありがとうございます、えげつない数式が出てくると思うのですが考えられる要因等があるのでしょうか?
magichan

2020/05/14 08:30

いや、あまりにも数式があまりにもなのでそこで考えるのを止めました(スミマセン)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問