背景介紹:一、安裝 sympy 模組sugar 起初在 multimcu edu 上寫的都是有飛控、嵌入式作業系統、控制演算法類的推文。
最近推的 matlab 和 python 似乎與 mcu 不在乙個世界裡,其實不然。機械人身上的 mcu 所跑的程式是有執行控制演算法的,而控制演算法的學習必須有紮實的數學功底。
當代學數學除了 matlab 工具可用,還有開源的 python 模組。學數學必須借助好工具,把抽象變具象才能理解。本篇 sugar 就來說一說 python 中的符號運算。
sugar 使用 python 3.8.6 安裝 sympy 模組,安裝命令如下:
pip install sympy
二、sympy 使用
1、symbols() 函式定義符號
import sympy as sy
x,y = sy.symbols(
"x y"
)
如上定義x
和y
為符號變數,可以用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...