Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのSymPyモジュール入門:記号数学ライブラリの基本と使い方

SymPyは、Python向けの記号数学(シンボリック数学)ライブラリです。コードをできるだけシンプルに保ちながら、本格的なコンピュータ代数システム(CAS)となることを目標としており、そのため理解しやすく、機能の追加や拡張も容易に行える設計になっています。SymPyは完全にPythonで実装されており、依存関係は任意精度の浮動小数点演算を提供する純Pythonライブラリ「mpmath」のみです。この軽量な構成のおかげで、環境を選ばず手軽に導入できます。

SymPyモジュールのインストール

SymPyはpipコマンドを使って簡単にインストールできます。

pip install sympy

SymPyの基本的な数値型

SymPyには、Rational(有理数)とInteger(整数)という数値型が定義されています。

Rationalクラスは、有理数を分子と分母という2つの整数の組として表現します。たとえば、Rational(1, 2)は1/2、Rational(5, 2)は5/2を表します。Integerクラスは整数を表すために使用されます。

さらに、SymPyは内部的にmpmathを利用しているため、任意精度演算による計算が可能です。これにより、exp、pi、oo(無限大)といった特殊な定数はシンボルとして扱われ、必要に応じて任意の精度で数値評価することができます。

サンプルコード

# sympyモジュールからすべての機能をインポート
from sympy import *

# シンボルのままでは具体的な数値は得られない
p = pi**3
print("value of p is :" + str(p))

# evalfメソッドを使うと、式を浮動小数点数として評価できる
q = pi.evalf()
print("value of q is :" + str(q))

# exp(1)は e^1(e ** 1)と同等
r = exp(1).evalf()
print("value of r is :" + str(r))

s = (pi + exp(1)).evalf()
print("value of s is :" + str(s))

# 無限大 oo に数値を足しても結果は oo のまま
rslt = oo + 10000
print("value of rslt is :" + str(rslt))

if oo > 9999999:
    print("True")
else:
    print("False")

実行結果

value of p is :pi**3
value of q is :3.14159265358979
value of r is :2.71828182845905
value of s is :5.85987448204884
value of rslt is :oo
True

解説

このように、pi**3のような式はシンボルのまま出力され、自動的には数値化されません。一方で、evalf()メソッドを呼び出すことで、円周率やネイピア数などの定数を高精度の浮動小数点数として取得できます。

また、oo(無限大)はどれほど大きな数値と比較しても常に大きいと判定されるため、上記の条件分岐では「True」が出力されます。同様に、無限大に数値を加算しても結果はooのまま変わりません。これはSymPyが定数を単なる数値ではなく数学的な概念として厳密に扱っていることを示す好例です。

  1. Apple TV+を始める前に知っておきたい基本ガイド:登録方法・対応デバイス・使い方を徹底解説

    2019年11月1日、Appleはついに熾烈な競争が繰り広げられる動画ストリーミング市場に「Apple TV+」で参入しました。世界中で愛されるライフスタイルブランドならではのオリジナルコンテンツを届けるサブスクリプションサービスです。すでにHulu、Netflix、HBO、Amazon Prime Videoなどを組み合わせて契約している人も多いでしょう。そこへさらに新しいコンテンツプロバイダーを追加するのは、ちょっと気が重いと感じるかもしれません。 しかし朗報があります。このサービスを試すのに、必ずしもお金を支払う必要はないのです。さらに嬉しいことに、この記事ではApple TV+を始め

  2. Xen 仮想化の開始

    Zで綴られるZenは、8時間保持した後、雪の中でおしっこをしているときに頭頂部にある典型的な感覚です. Xen は X で綴られており、KVM と同様に、企業市場を対象としていますが、家庭でもビジネスでもセットアップを検討できるオープンソースの仮想化テクノロジです。 KVM に関するいくつかのチュートリアルがあり、導入記事、ストレージとネットワーク (ブリッジ ネットワークを含む) のセットアップと構成の方法、および VirtualBox との競合の解決方法をカバーしています。ここで、Xen についてもう少し学びましょう。同様に、仮想マシンをインストールして実行するために必要な最初の手順、