Home  >  Article  >  Database  >  Matlab的基本应用2

Matlab的基本应用2

WBOY
WBOYOriginal
2016-06-07 15:14:171181browse

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



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn