裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

2 直線の交点 SymPy/Julia

2021年11月24日 | ブログラミング

あいも変わらず,

2直線の交点座標を求めるプログラム
https://blog.goo.ne.jp/r-de-r/e/e81316c26c521b31e9d47526f9bd5861

がよく参照されているが,わけわからん。

そこで,Julia の SymPy で書いたものも掲載しておく。
これが「わけわからん」という人もいるだろうが。

using SymPy

@syms a b c d x

function func(a, b, c, d)
    if a != c
        eq1 = a*x + b
        eq2 = c*x + d
        x2 = solve(Eq(eq1, eq2), x)[1]
        y2 = simplify(eq1(x => x2))
        println("x = $x2,  y = $y2")
    elseif b == d
        println("2直線はまったく同じなので,交点は無数にあります")
    else
        println("2直線は平行なので,交点はありません")
    end
end

記号変数で呼び出すと,数式で答えが返ってくる。

func(a, b, c, d)
x = (-b + d)/(a - c),  y = (a*d - b*c)/(a - c)

数値で呼び出すと,然るべき答えが返ってくる。

func(2, 3, 1, -4)
x = -7,  y = -11


func(1, 2, 1, 2)
2直線はまったく同じなので,交点は無数にあります


func(1, 2, 1, 5)
2直線は平行なので,交点はありません

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« SymPy/Julia(2) | トップ | SymPy だけでは解けない積分... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事