Python 符號運算

2021-10-11 21:50:59 字數 3292 閱讀 8176

背景介紹:

sugar 起初在 multimcu edu 上寫的都是有飛控、嵌入式作業系統、控制演算法類的推文。

最近推的 matlab 和 python 似乎與 mcu 不在乙個世界裡,其實不然。機械人身上的 mcu 所跑的程式是有執行控制演算法的,而控制演算法的學習必須有紮實的數學功底。

當代學數學除了 matlab 工具可用,還有開源的 python 模組。學數學必須借助好工具,把抽象變具象才能理解。本篇 sugar 就來說一說 python 中的符號運算。

一、安裝 sympy 模組

sugar 使用 python 3.8.6 安裝 sympy 模組,安裝命令如下:

pip install sympy
二、sympy 使用

1、symbols() 函式定義符號

import sympy as sy

x,y = sy.symbols(

"x y"

)

如上定義xy為符號變數,可以用type()函式檢視變數型別,如下:

2、字元表示式輸出方法:

f"...{}"字串前加f{}裡的內容格式化輸出。

3、符號表示式的數值解

subs()函式用於將表示式裡的變數替換成數值。

f字串裡凡是要求值的地方都用{}括起來。

4、變數替換(適用於復合函式)

subs()函式可以將表示式裡的變數替換成其他符號表示式。

5、算術表示式求值

rational(a,b)表示分數a/b

sqrt(a)表示求a的平方根。

evalf()函式用於求算數表示式的數值解。

6、輸出更易懂的表示式

init_printing()pprint()就能以更易懂的方式輸出符號表示式。

7、輸出更專業的表示式

這裡要用到jupyter notebook,關於 jupyter 的安裝和使用 sugar 下面會單獨說。

參考《python安裝jupyter notebook配置使用教程》

jupyter notebook是用來學**的不二之選,相當於乙個活的可執行的**筆記,功能上類似於 matlab 的實時指令碼。

一、安裝 jupyter

pip 安裝命令pip install jupyter

二、簡單配置和使用

1、換jupyter notebook啟動目錄

(1) 在 d 盤新建資料夾d:\jupyter_notebook

(2) 生成配置檔案,命令是:jupyter notebook --generate-config

2、基本使用:在 jupyter 裡用 python3 輸出公式。

(1) 在windows powershell裡輸入命令jupyter notebook開啟 jupyter 網頁,然後新建python3檔案,如下圖:

(2) 自動跳轉到 python3 頁面,如下圖:

(3) 輸入如下**並執行,結果如**下面的圖:

from ipython.display import display, latex

import sympy as sy

sy.init_printing(

)x,y=sy.symbols(

"x y"

)f=x**2+

3*x-

5display(latex(f"$$f(x)=$$"))

xx=3

sy.pprint(f"f()=)}"

)yy=

4f1=sy.sqrt(x**

2+y**2)

display(latex(f"$$f_1(x,y)=$$"))

sy.pprint(f"f1(,)=)}"

)

三、更多功能

如上圖,jupyter 還支援更 markdown 等更多功能,使用方法也是動手弄一弄就會。結合這些功能一起,就能理解為什麼叫jupyter notebook了,這實在是做**筆記的不二之選。

對於數學工具,sugar 推薦相似功能先學習 matlab 再學 python,matlab 環境下檢視變數和斷點除錯更方便。

Python學習(5) 運算符號

a 1 b 8c 3 加 print a b 減 print b a 乘 print a b 除 print b c 取整 print b c 取餘 print b c 指數 算數運算優先極 混合運算優先順序順序 高於 高於 高於 賦值運算 表示將數值給變數 a 3 就是將3賦給a這個變數 a 1 ...

Matlab符號運算

一 宣告 宣告單個符號變數 sym a 宣告多個符號變數 syms a b c 二 符號表示式 提取分子分母 n,d numdem a 自變數為 v的符號函式的反函式 finverse f,v 求和 symsum s,v,a,b 三 符號表示式化簡 以直觀漂亮的形式顯示 pretty f 合併同類項...

符號運算 迴圈

位運算 只有兩邊都為1時結果才為1.可用於獲取二進位制為的有效位1 位運算 兩邊只有有乙個為1結果都為1 位運算 兩邊不同的為1,乙個數異或另乙個數兩次時,結果為本身。運算 6 1 6 交換兩變數的值 1.通過和的形式,交換兩個變數,有弊端是 兩個資料較大可能會超出int型範圍 2.異或 a a b...