Matlab的基本应用2

WBOY
リリース: 2016-06-07 15:14:17
オリジナル
1186 人が閲覧しました

这一节主要分享一下利用MATLAB进行相关计算。MATLAB内置了很多计算方法及其函数实现,即使不懂数方法,也可以进行一些复杂的计算,例如有求解矩阵的逆,求解积分、微分,进行傅里叶变化及其逆变换,进行最小二乘法的直线拟合等等。 例1、 求解一个矩阵的逆矩

这一节主要分享一下利用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));



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート