matlab符號推導應用及相關技巧

2021-10-25 13:32:37 字數 2926 閱讀 1441

手撕公式必不可少,但是難免出錯。在戰略上手推公式,而在戰術上用matlab符號推導輔助和驗證可以大幅度減少出錯,並提高效率。

1. 符號推導第一步,學會使用sym和syms

a.生成 單個符號變數

sym a
b.生成 單個符號變數

syms a b c d
c.生成矩陣符號變數sym和syms的區別使用sym只生成乙個整體a可以控制元素顯示方式

使用syms生成乙個整體a及對應元素符號變數

d.生成向量和矩陣符號變數及使用

生成的矩陣符號變數可以像正常矩陣一樣進行索引和計算

更加詳細的介紹請在command window裡輸入doc sym或者doc syms回車檢視相關help介紹

2. **轉公式

當我們看別人的**有部分看不明白時,可以嘗試用符號推導打出來看一下。比如以下**。我們想知道從矩陣y到e的具體公式是什麼樣的。

將相關引數設為符號變數,再將推出來的公式轉為latex**,在axmath中複製便可直**到公式。

%% 符號推導nelem =1;nmat = 3;y = sym('y%d%d',[nelem nmat]);syms eps_ee0 = sym('e0_%d',[nmat 1]);penal = 2;gamma = 1;w = y.^penal;s = 1-(gamma.*w);prod = ones(nelem,nmat);for m = 1:nmat-1s = [s(:,nmat),s(:,1:nmat-1)];prod = prod.*s;ende = eps_e + (1-eps_e).*((w.*prod)*e0);latex(e)

3. 求梯度等資訊gradient函式上面求了矩陣y到向量e的函式關係式。下面計算標量e對矩陣y的每一項的導數。注意使用gradient函式時,第二項不能是矩陣必須向量化再reshape成矩陣。同樣可以用latex**直**到計算的梯度資訊。​​​​​​​

%% 求導dedy = reshape(gradient(e,y(:)),nmat,1);latex(dedy)

4. 公式推導加使用subs函式如推導下面向量f對t1 t2的導數得到的a矩陣。推導完成。a是符號變數​​​​​​​

下面根據不同的t1 t2要使用相應的a矩陣。使用subs函式與double結合。r如果不用double函式,結果的小數是分數形式。​​​​​​​

%% 賦值使用t1 = pi/6;t2 = pi/3;aa = double(subs(a))

5. 公式操作函式,以simplify函式為例。直接搜尋可以看到simplify函式的使用方法和example。

還有其他類似函式,比如 collect同類項合併;expand表示式進行展開;factor因式分解等。

Matlab相關應用

用matlab做回歸計算 x 1656,2122,2864,4033,6099 y 2112,2170,2291,2456,2759 clear x 1656,2122,2864,4033,6099 y 2112,2170,2291,2456,2759 p,s polyfit x,y,1 p為擬合回...

MATLAB 顏色選擇及應用

注意 matlab中調色盤色彩強度 0,1 0代表最暗 純黑 1代表最亮 純白 選對顏色,才會有漂亮影象。常用顏色的rgb值 顏色 r g b 黑 0 0 1 白 1 1 1 紅 1 0 0 綠 0 1 0 藍 0 0 1 黃 1 1 0 青藍 0 1 1 洋紅 1 0 1 天藍 0.67 0 1 ...

matlab矩陣合併及相關運算

1 matlab允許向量 和矩陣 合併,且matlab提供了兩種合併方式,a,b 和 a b 兩者的結果是不一樣的。a rand 2,3 b rand 2,3 c a b d a,b c的結果是將b整體合併到a 的下邊,而d的結果是整體將b合併到a 的右邊。2 建立等差向量組 a 1 2 11 注意...