①首先定義符號變量(中間用「空格號」隔開)函數
syms x y z;
②此時不用對變量賦值,能夠進行正常代數運算。spa
如:z=x+y,diff(z)code
③最後對變量賦值時,採用subs()函數blog
subs()函數: 字符串
R = subs(S, new) 利用new的值代替符號表達式S中的默認符號。 R = subs(S) 用由調用函數或Matlab工做空間中獲取的值替代了在符號表達式S中的全部當前的變量。 R = subs(S, old, new) 利用new的值代替符號表達式中old的值。old爲符號變量或是字符串變量名。
new是一個符號貨數值變量或表達式。
也就是說R = subs(S,old,new)在old=new的條件下從新計算了表達式S。
這種替換第一次做爲Matlab表達式被嘗試,若是全部在new中的數值是雙精度的,
計算是以雙精度算術運算進行的。講new值轉化爲符號能夠驗證符號貨變量的運算精度
subs(S,{x,y},{1,z}) 將變量x和y分別替換爲1和z:
但注意,即便用常量替代符號變量,subs()函數的結果還是字符變量,可用eval()函數對結果進行處理。class
eval()函數:變量
用於將括號內的字符串視爲語句並運行。di
eval('y1=sin(2)') 等價於:y1=sin(2)
for x=1:5 eval(['y',num2str(x),'=',num2str(x^2),';']) end 等價於:yx=x^2 即 y1=1^2 y2=2^2 y3=3^2 y4=4^2 y5=5^2
④調用包含符號運算的函數,並導入數值參數。co
JF=eval(subs(F,{'theta1','theta2','theta7'},{X1,X2,X3})); 將X1,X2,X3替換F函數中的'theta1','theta2','theta7'符號變量,並輸出解的值