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

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

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

Maximaは、LISPで書かれているオープンソースの数式処理システムです。Macsymaを基礎としており、GNU GPLに基づくフリーソフトウェアとして利用できます。

wxMaxima

wxMaximaは、数式処理システム「Maxima」におけるドキュメントベースのインターフェイスです。

Q&A

解決済

1回答

3077閲覧

Maximaで、線と線の交点計算を教えて下さい

mrrclb48z

総合スコア17

Maxima

Maximaは、LISPで書かれているオープンソースの数式処理システムです。Macsymaを基礎としており、GNU GPLに基づくフリーソフトウェアとして利用できます。

wxMaxima

wxMaximaは、数式処理システム「Maxima」におけるドキュメントベースのインターフェイスです。

0グッド

0クリップ

投稿2017/01/16 11:37

Maximaで、線と線の交点計算を教えて下さい。
solve([y1=ax1+b,y2=ax2+b,y3=cx3+d,y4=cx4+d],[a,b,c,d]);
solve([y=ax+b,y=cx+d],[x,y]);
x=?x1.....,y=?Y1...
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

直線が複数与えられた時、それらの交点を全て求めよ、ということと解釈しました。

Maxima

1eqSet:{y=3*x+1,y=1/2*x-1,y=-x+3,y=3*x-5};

こんな風にeqSetに直線の集合を設定します。そして、

Maxima

1map(lambda([eqpair], 2 if coeff(eqpair[1],x)#coeff(eqpair[2],x) then 3 solve(eqpair,[x,y])), 4 cartesian_product(eqSet,eqSet));

動作原理を簡単に説明すると、eqSetの要素の全てのペアをcartesian_product()という関数で作り出します。それらを全てsolve()で解けば交点は全ても止まります。ただし、直線同士が平行な場合には交点はないので、その場合にはsolve()を呼び出しません。平行かどうかはxの係数が等しいかどうかで判定しています。

投稿2017/03/06 13:59

jurupapa

総合スコア13

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問