我是靠谱客的博主 殷勤小熊猫,最近开发中收集的这篇文章主要介绍基于MATLAB的入门数学运算(附代码)一. 矩阵的表示与转置二. 矩阵的加减乘运算三. 矩阵除法四. 矩阵翻转与乘方五. 点运算符的一些解释六. 矩阵的逻辑与比较运算七. 解析结果的化简与变换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一. 矩阵的表示与转置

假定A为ntimes 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,nquad j=1,2,cdots,r

MATLAB的格式如下:

C=A*B

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

三. 矩阵除法

3.1 左除法

AX=B,求X

MATLAB的求解格式如下:

X=AB

如果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

c_{ij}=sum^m_{k=1}a_{ik}b_{kj},quad i=1,2,cdots,nquad j=1,2,cdots,r

例题1

MATLAB代码如下:

A=[1 2;3 4]
B=[4 3;2 1]

r2_1=A*B
r2_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./A
A.k
%数组除法
A.B %左除
B./A %右除

%矩阵运算
%AX=B的解
AB %左除
%XA=B的解
B/A %右除

例题2

MATLAB代码如下:

A=[1 2;3 4];
B=[4 3;2 1];

r3_1=AB
r3_2=A.B

r4_1=B/A
r4_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.^2
r5_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 变量的替换

%格式1
f1=subs(f,x1,x1*)

%格式2
f1=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

最后

以上就是殷勤小熊猫为你收集整理的基于MATLAB的入门数学运算(附代码)一. 矩阵的表示与转置二. 矩阵的加减乘运算三. 矩阵除法四. 矩阵翻转与乘方五. 点运算符的一些解释六. 矩阵的逻辑与比较运算七. 解析结果的化简与变换的全部内容,希望文章能够帮你解决基于MATLAB的入门数学运算(附代码)一. 矩阵的表示与转置二. 矩阵的加减乘运算三. 矩阵除法四. 矩阵翻转与乘方五. 点运算符的一些解释六. 矩阵的逻辑与比较运算七. 解析结果的化简与变换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部