许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  基于MATLAB的入门数学运算(附代码):算术、逻辑与矩阵运算

基于MATLAB的入门数学运算(附代码):算术、逻辑与矩阵运算

阅读数 30
点赞 0
article_banner


一. 矩阵的表示与转置

假定A为n\times m矩阵,矩阵转置的数学表示如下:

B=A^T,\quad b_{ji}=a_{ij},\quad i=1,\cdots, n, j=1,\cdots,m

如果原矩阵有复数元素,那么会先转置再取各个元素的共轭复数值,即Hermit转置

MATLAB中格式如下:

B=A'

如果不希望取共轭复数,只需要改为点运算即可,如下格式:

B=A.'

二. 矩阵的加减乘运算

2.1 加减法

%加法运算C=A+B %减法运算D=A-B

注意两矩阵的维数是否相等以及 是否存在  某个矩阵为标量的情形。


2.2 乘法

矩阵乘法C=AB的数学形式如下:

c_{ij}=\sum_{k=1}^m a_{ik}b_{kj},\quad i=1,2,\cdots,n\quad j=1,2,\cdots,r

MATLAB的格式如下:

C=A*B

注意两个矩阵维数的相容性问题。


三. 矩阵除法

3.1 左除法

AX=B,求X

MATLAB的求解格式如下:

X=A\B

如果A为非奇异矩阵,则X=A^{-1}B

如果A不是方阵,则可以利用最小二乘法求解


3.2 右除法

XA=B,求X

MATLAB的求解格式如下:

X=B/A

如果A为非奇异方阵,则X=BA^{-1}

如果A不是方阵,则可以利用最小二乘法求解


四. 矩阵翻转与乘方

4.1 矩阵的转动

①左右翻转  b_{ij}=a_{i,m+1-j}

B=fliplr(A)

②上下翻转 c_{ij}=a_{n+1-i,j}

B=flipud(A)

③逆时针旋转90^\circ  d_{ij}=a_{j,n+1-i}

D=rot90(A)

逆时针旋转180^\circ

D=rot90(rot(A))

4.2 矩阵的乘方

乘方运算通常适用于方阵的形式, MATLAB实现 形式如下:

F=A^x


五. 点运算符的一些解释

一维数组相当于向量,二维数组相当于矩阵,所以实际上矩阵是数组的子集。

数组运算是指数组对应元素之间的运算,也称之为点运算。

矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算时一致的。矩阵的乘法,乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法,乘方和除法的运算符前特地加了一个点。c_{ij}=a_{ij}b_{ij}

5.1 乘法比较


代码形式数学形式
数组乘法A.*Bc_{ij}=a_{ij}b_{ij}
矩阵乘法A*B

例题1

MATLAB代码如下:

A=[1 2;3 4]B=[4 3;2 1] r2_1=A*Br2_2=A.*B

运行结果:

   A =

    1     2

        3     4



   B =

    4     3

        2     1



   r2_1 =

    8     5

       20    13



   r2_2 =

    4     6

        6     4


5.2 除法比较

 %数组运算%数除以数组,代表k分别被A的元素除k./AA.\k%数组除法A.\B %左除B./A %右除 %矩阵运算%AX=B的解A\B %左除%XA=B的解B/A %右除

例题2

MATLAB代码如下:

A=[1 2;3 4];B=[4 3;2 1]; r3_1=A\Br3_2=A.\B r4_1=B/Ar4_2=B./A

运行结果:



   r3_1 =

  -6.0000   -5.0000

       5.0000    4.0000



   r3_2 =

   4.0000    1.5000

       0.6667    0.2500



   r4_1 =

  -3.5000    2.5000

      -2.5000    1.5000



   r4_2 =

   4.0000    1.5000

       0.6667    0.2500

5.3 乘方比较

%数组运算A.^k  %A的每个元素进行k次方运算k.^A  %以k为底,分别以A的元素为指数求幂值 %矩阵运算A^k  %k个矩阵A相乘

例题3

MATLAB代码如下:

A=[1 2;3 4] r5_1=A.^2r5_2=A^2 r6_1=2.^A

运行结果:

A =

    1     2

        3     4



   r5_1 =

    1     4

        9    16



   r5_2 =

    7    10

       15    22



   r6_1 =

    2     4

        8    16


六. 矩阵的逻辑与比较运算

6.1 逻辑运算

在MATLAB中,对double变量来讲,非0就表示逻辑1。逻辑运算的本质就是相应元素间的运算。

  • 与运算(and)   A&C
  • 或运算(or)    A|C
  • 非运算(not)  ~A
  • 异或运算   xor(A,C)


6.2 比较运算

允许各种的比较关系,如下:

>,>=,<,<=,==,~=,find(),all(),any()

例题4

MATLAB代码如下:

A=[1 2 3;4 5 6;7 8 0]find(A>=5) %大于或等于5元素的下标,竖直看[i,j]=find(A>=5);[i,j] %显示行标和列表 all(A>=5)  %某列元素全大于或等于5时,相应元素为1,否则为0 any(A>=5)  %某列元素含有大于或等于5时,相应元素为1,否则为0

运行结果:



   A =

    1     2     3

        4     5     6

        7     8     0



   ans =

    3

        5

        6

        8



   ans =

    3     1

        2     2

        3     2

        2     3



   ans =

 1×3 logical 数组

  0   0   0



   ans =

 1×3 logical 数组

  1   1   1


七. 解析结果的化简与变换

7.1 结果的化简

MATLAB实现:

s1=simplify(s) %从各种方法中自动选择最简格式%s为原始表达式,s1为化简后的表达式

现在列举五个常用的化简函数,关于它们详细的信息与格式可以用help命令得出:

  • collect()   合并同类项
  • expand()  展开多项式
  • factor()   因式分解
  • numden()  提取多项式的分子与分母
  • sincos()   三角函数的化简


例题5

P(s)=(s+3)^2(s^2+3s+2)(s^3+12s^2+48s+64)

MATLAB代码如下:

syms s;P=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64); P1=simplify(P) %一系列化简尝试,得出计算机认为的最简形式 P2=factor(P) P3=expand(P)

运行结果:

   P1 =(s + 3)^2*(s + 4)^3*(s^2 + 3*s + 2)


   P2 =[ s + 3, s + 3, s + 2, s + 1, s + 4, s + 4, s + 4]


   P3 =s^7 + 21*s^6 + 185*s^5 + 883*s^4 + 2454*s^3 + 3944*s^2 + 3360*s + 1152


7.2 变量的替换

%格式1f1=subs(f,x1,x1*) %格式2f1=subs(f,{x1,x2,···,xn},{x1*,x2*,···,xn*}) %f为原表达式,用x*替换x得出新的表达式

例题6

求f(t)在某点的特殊值:

f(t)=cos(at+b)+sin(ct)*sin(dt)

解:

MATLAB代码如下:

clc;clear;syms a b c d t; %假设这些变量均为符号变量f=cos(a*t+b)+sin(c*t)*sin(d*t); %定义给定函数f(t)f1=subs(f,{a,b,c,d,t},{0.5*pi,pi,0.25*pi,0.125*pi,4})

运行结果:

f1 =-1


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空