9
5

More than 5 years have passed since last update.

[Pythonによる科学・技術計算] 方程式の解を求める 解析解 sympy

Last updated at Posted at 2017-07-18

内容

sympyのsolveメソッドを利用して以下の3つの問題を解く。

(1) 二次方程式, $x^2+5x+3=0$, の根を求める。
(2) 三次方程式, $3x^3+3x-5=0$, を解く。虚数解が出る。
(3) 2元連立方程式, $x^2+y^2=4, y = 2x+1$, を解く。


コード(1)

例(1)
from sympy import *
x=Symbol('x')                  # 文字'x'を変数xとして定義

"""
方程式: solve
例: 2 * x **2 +5*x+3=0の根を求める
"""
sol=solve(2 * x **2 +5*x+3, x) # 解をsolに格納
print(sol)

結果: 例題(1)

スクリーンショット 2017-07-18 14.51.46.png


コード(2)

例(2)
from sympy import *
x=Symbol('x')                  # 文字'x'を変数xとして定義

"""
方程式: solve
例: 2 * x **3 +3*x-5=0の根を求める
"""
sol=solve(2 * x **3 +3*x-5, x)
print(sol)

結果: 例題(2)

スクリーンショット 2017-07-18 14.57.38.png


コード(3)

例題(3)
from sympy import *
x=Symbol('x')    # 文字'x'を変数xとして定義
y=Symbol('y')    # 文字'x'を変数xとして定義

"""
方程式: solve
連立方程式 x**2+y**2=4, y=2x+1の解を求める
"""
b= solve ([x*2+y**2-4, y-2*x+1],[x,y])  # 連立方程式を解く
print(b)

結果: 例題(3)

[(1/4 + sqrt(13)/4, -1/2 + sqrt(13)/2), (-sqrt(13)/4 + 1/4, -sqrt(13)/2 - 1/2)]
9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5