Matlab的基本應用2

這一節主要分享一下利用MATLAB進行相關計算。MATLAB內置了很多計算方法及其函數實現,即使不懂數值方法,也可以進行一些複雜的計算,例如有求解矩陣的逆,求解積分、微分,進行傅里葉變化及其逆變換,進行最小二乘法的直線擬合等等。


例1、求解一個矩陣的逆矩陣,並進行矩陣的乘計算。

首先是輸入(或者說是定義)一個矩陣a,那麼則應輸入的是:

>> a=[1 2;3 4]

若無分號,直接回車,則會輸出a矩陣。

求a矩陣的逆矩陣,求解利用的函數如下:

>> b=inv(a)

計算矩陣相乘,在這裏計算a矩陣乘以b矩陣的轉置,而矩陣的轉置則只需加一撇即可:

>> c=a*b'

最後輸出的結果有:

a =                               
     1     2
     3     4

b =
   -2.0000    1.0000
    1.5000   -0.5000

c =
         0    0.5000
   -2.0000    2.5000

b' =
   -2.0000    1.5000
    1.0000   -0.5000


例2、符號運算的定義,主要有syms,sym的應用,如下:

這兩種皆爲定義符號,但又有些許區別。syms是在運用符號之前,將所用的符號全部定義,下面則可以直接運用;而sym則是在運算中定義,用到每一個符號需要定義一次,相對而言沒有syms方便,下面有具體例子。

 如:syms x(t) a

               就等於

                  a = sym('a');
                   t = sym('t');
                  x = symfun(sym('x'), {t});


          syms x beta real

               就等於

                  x = sym('x','real');
            beta = sym('beta','real');

上面的syms先定義了幾個是函數符號,下面就可以直接運用,公式中不用再出現sums或者sym,而sym則是在下面的公式中出現的。


例3、求積分及微分,運用MATLAB函數int以及diff,由於牽涉到符號運算,所以在運用之前,需要利用syms做一下符號的定義,如下:

 syms x

int(x)   按回車後,得到

ans =
 x^2/2

也可以直接輸入int(sym(x))  按回車後得到

ans =
 x^2/2

當然,也可以進行比較複雜積分計算,因爲可能會牽涉到較多的符號,所以建議大家利用syms先將用到的符號定義好,在利用int函數,進行積分計算。

微分計算函數diff,運用方式和int基本類似,例如

>> syms x y
>> y=diff(sin(x))

y =
 cos(x)

真正靈活運用這些MATLAB函數,還是需要大家不斷嘗試和運用的。


例4、solve和dsolve函數的應用

這兩個函數均可以用於解函數方程或者方程組,solve主要用於解一般的方程及方程組,而dsolve則一般用於求解微分方程組,具體例子如下:

如求解方程sin(x)*pi=8,求x

>> solve('sin(x)*pi=8')

ans =
      asin(8/pi)
 pi - asin(8/pi)

這裏默認求解的是x,如果是>> solve('sin(x)*pi*y=8'),那麼依舊默認求解的是x,那如果想輸出y呢?則需要>> solve('sin(x)*pi*y=8','y'),那麼會輸出ans =8/(pi*sin(x));



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章