符號運算

①首先定義符號變量(中間用「空格號」隔開)函數

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'符號變量,並輸出解的值
相關文章
相關標籤/搜索