1.什么是符號數學工具箱?
符號數學工具箱是Matlab針對符號對象的運算功能,它引入了一種特殊的數據類型 - 符號對象;
該數據類型包括符號數字,符號變量,符號表達式和符號函數,還包含符號矩陣,以及上述變量組成的符號數組等,符號對象也成為符號類型;
符號數學工具箱提供求解、繪圖和操作符號數學方程的功能,針對符號類型數據的運算,稱為符號運算。
2.為什么要使用符號運算?
首先說Matlab里常規的數值型類數據(浮點型)在存儲和運算時,一般使用小數近似,例如10/3=3.3333,由于計算機硬件存儲限制,結果3.3333并不是真實的結果3又1/3,但在一般應用中,這不是什么大問題;
當特別關注運算的精確度時,上述問題就變成了大問題;
于是,符號運算應運而生,它采用符號化的方式存儲變量,例如上述10/3,采用符號運算結果等于10/3,是的,分數的形式;
3.創建符號對象(變量)
符號變量聲明(創建)后可直接使用,無輸出結果,但工作區會存儲;
創建符號變量使用函數sym、syms
程序示例:
sym('x')? %語法1
syms x? %語法2
syms x y z? %創建多個符號變量
sym('x',[1 5])? %創建符號變量x1/x2/x3/x4/x5
4.符號類型和數值類型的精度差別
程序示例:
1/6? %雙精度浮點型1/6,在Matlab中使用小數表達0.1667
x=sym(1/6)? %創建符號變量,分數形式表達1/6
sin(pi)? %雙精度浮點pi值計算sin值,有舍入誤差1.2246e-16
sin(sym(pi))? %對符號對象數值pi求sin值,完整表達0
5.符號表達式
程序示例:
syms x y z
f=2*x+1? %符號表達式
g=x*y+z
6.符號函數
符號函數的用法與常規的函數用法相同,差異在于處理的數據類型不同,用符號對象運算時,需要首先聲明符號對象,并且可以形式化的表達結果。
程序示例:
syms x
f(x)=2*x+1? %符號函數
f(1)? %符號函數的調用,結果是符號對象3
syms f(x,y)? %直接創建(聲明)沒有函數表達式的函數
f(x,y)? %調用
f(1,2)? %運算結果形式f(1,2)
7.符號矩陣
符號矩陣的用法與常規的矩陣用法相同,差異在于處理的數據類型不同,用符號對象運算時,需要首先聲明符號對象,并且可以形式化的表達結果。
程序示例:
syms a b c d? %聲明符號變量
A=[a b;c d]? %符號矩陣
B=[a 1;c 3]
sum(A)? %符號矩陣運算,與常規矩陣算法相同
sum(B)
sym('x',[2 2])? %創建2行2列矩陣,自動添加下標
sym('x%d%d',[2 2])? % 返回結果[x11, x12;x21, x22]
sym('x%d2018%d',[2 2])? %2個下標中間添加數字
相關內容推薦
11.1/Matlab解方程/solve基本用法/不會的舉手
11.18 Matlab非線性方程組和矩陣方程求解fsolve數學建模
13.1/Matlab計算極限 微積分 導數
13.10 Matlab數值積分integral、integral2、vpaintegral
14.1 Matlab解微分方程
14.5/Matlab解微分方程組/簡單到不想說話
25.1 快速上手樸素貝葉斯算法分類識別及其Matlab編程代碼實例
當Matlab繪圖達到張三瘋的水平,是什么感受?
31.17 干貨匯總Matlab繪圖/三維線圖/三維柱狀圖/三維餅圖/函數三維圖
35.24 Matlab搜索路徑(學Matlab必過的檻)
37.4 Matlab AppDesigner 設計案例:學生信息注冊系統,編程演示列表框和下拉框的用法,初學者很友好
36.1 Matlab GUI 界面設計初學者光速入門
38.7 論文復現:圖表數據提取及公式擬合
38.6 從圖表變化趨勢上提取曲線坐標數據(簡單高效)
End