前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matlab 使用经验分享(常用函数介绍;矩阵常见计算)

Matlab 使用经验分享(常用函数介绍;矩阵常见计算)

作者头像
命运之光
发布2024-03-20 13:00:57
2010
发布2024-03-20 13:00:57
举报

Matlab 使用经验分享

大家好!最近有很多朋友询问我关于 Matlab 的使用,于是我决定写一篇博客来分享一下我的经验。对于数学和编程爱好者来说,Matlab 是一个非常有用的工具。我自己在数学实验和数学建模竞赛中也经常使用它。那么,为什么 Matlab 这么受欢迎呢?

Matlab 的起源

MATLAB 是美国MathWorks 公司自20 世纪 80 年代中期推出的数学软件, 优秀的数值 计算能力和卓越的数据可视化能力使其很快在数学软件中脱颖而出。

为什么选择 Matlab?

由于 Maltab 编程方便,有大量内部函数和工具箱可以使用,作图也十分方便,因此在 数学实验和数学建模竞赛中,我们就常使用 Matlab 作为我们的编程工具。

一些常用函数介绍

  • 三角函数
    • sin: --正弦
    • sinh: 双曲正弦
    • asin: -反正弦
    • cosh: 双曲余弦
    • acos: -反余弦
    • atanh: --反双曲正切
  • 指数函数与对数函数
    • exp: -指数
    • log: --e 为底的对数
    • log10: 常用对数
    • sqrt: --平方根
  • 与复数有关的函数
    • abs: -模或绝对值
    • angle: 幅角
    • conj: 复共轭
    • imag: 虚部
    • real: --实部
  • 舍入函数及其它数值函数
    • fix: – 向 0 舍入
    • floor: 向负无穷舍入
    • ceil: – 向正无穷舍入
    • sign(x): -符号函数
    • min(x): 向量 x 的元素的最小值
    • max(x): 向量 x 的元素的最大值
    • mean(x): 向量 x 的元素的平均值
    • median(x): 向量 x 的元素的中位数
    • std(x): 向量 x 的元素的标准差
    • diff(x): 向量 x 的相邻元素的差
    • sort(x): 对向量 x 的元素进行排序
    • length(x): 向量 x 的元素个数
    • norm(x): 向量 x 的 Euclidean 长度
    • sum(x): 向量 x 的元素总和
    • prod(x): 向量 x 的元素连乘积
    • cumsum(x): 向量 x 的累计元素总和

矩阵常见计算

矩阵输入

矩阵输入最简单的方法是把矩阵的元素直接排列在方括号中。每行内的元素间用空格或逗号隔开,行与行之间用分号隔开。例如:

代码语言:javascript
复制
A=[1,4,7;3,6,9;6,7,4]
矩阵的转置

矩阵的转置用符号´来表示。例如:

代码语言:javascript
复制
A=[1,4,7;3,6,9;6,7,4];
B=A´

矩阵的加减

矩阵的加减使用的是”+”和”-“运算符。进行矩阵加减运算必须是同型矩阵。例如: A=[1,3,6;4,5,7;7,8,9]; B=[3,5,7;2,4,6;1,3,9]; C=A+B 以下是关于矩阵与标量进行加减运算的内容: 矩阵可以与一个数进行加减运算,运算法则是对应每个元素加减同一个数。例如:

代码语言:javascript
复制
Z=C-1

结果为: Z = 3 5 …

矩阵乘法

矩阵乘法用符号*表示。要求前一矩阵的列数与后一矩阵的行数相同。例如:

代码语言:javascript
复制
A=[1,4,7;2,5,8];
B=[4,5,9;1,7,8;3,2,1];
C=A*B

在 Matlab 中,还可以进行矩阵与数的乘法。其规则是矩阵的每个元素与该数相乘。例如:

代码语言:javascript
复制
A=[1,5,8;2,6,9];
B=3*A

结果为: B = 3 15 24 6 18 27

矩阵的行列式

求方阵 A 的行列式,用 det(A) 表示。例如: A=[1,3,6;2,5,8;3,9,11]; Z=det(A)

矩阵求逆

非奇异矩阵 ( A ) 的求逆用 inv(A) 表示。例如:

代码语言:javascript
复制
A=[1,3,6;2,5,8;3,9,11];
Z=inv(A)

结果为: Z = -2.4286 3.0000 -0.8571 0.2857 -1.0000 0.5714 … 以下是关于如何验证矩阵的逆以及如何使用逆矩阵来解方程组的内容: 要验证矩阵的逆是否正确,可以计算 ( C = A \times Z )。例如:

代码语言:javascript
复制
C =
   1.0000 0 -0.0000
   0 1.0000 -0.0000
   ...

利用逆矩阵可以解方程组。例如: AX=b 其中: A=[1,3,6;… 以下是关于如何使用矩阵来解方程组和函数拟合的内容: 例如,给定以下方程组:

代码语言:javascript
复制
A=[1,3,6;2,5,8;3,9,11];
b=[3,6,7]';
X=inv(A)*b

结果为: X = 4.7143 -1.1429 0.2857 或者,使用 X=A\b 也可以求解。此外,X=A\b 还可以求解矛盾方程组。

函数拟合

假设因变量 y 与自变量 x 之间存在以下关系: y = a + b * exp(-x) 观测数据为: | x | 0.0 | 0.3 | 0.8 | 1.1 | 1.6 | 2.3 | | y | 0.82| 0.72| 0.63| 0.60| 0.55| 0.5 | 基于这些数据,我们可以建立矛盾方程组 AX=y,其中X=[a,b] ′ 以下是关于如何使用 m 文件进行函数拟合的内容: 我们可以创建以下 m 文件来进行拟合: t=[0.0, 0.3, 0.8, 1.1, 1.6, 2.3]‘; y=[0.82, 0.72, 0.63, 0.60, 0.55, 0.5]’; A=[ones(size(t)),exp(-t)]; X=inv(A’*A)*A’*y; 或者 X=A\y; 计算结果为: X = 0.4760 0.3413 即:a=0.4760,b=0.3413。 函数拟合为:y=0.476+0.3413×e^x 。 我们可以使用图形来表示结果。

在这里插入图片描述
在这里插入图片描述

以下是 M 文件的内容: M 文件如下 t=[0.0 0.3 0.8 1.1 1.6 2.3]’ y=[0.82 0.72 0.63 0.60 0.55 0.5]’ A=[ones(size(t)),exp(-t)] x=inv(A’*A)*A’y n=500 tt=zeros(n,1); yy=zeros(n,1); dt=2.3/n; for i=1:n tt(i)=idt; yy(i)=x(1)+x(2)*exp(-tt(i)); end plot(t,y,‘*b’,tt,yy,‘r’) b—表示蓝色,代表原数据 r-----表示红色,代表拟合曲线

矩阵特征值

如果 A 为方阵,满足 AX=λX 的 λ 称为 A 的特征值,X 称为 A 的特征向量。计算 A 的特征值用 eig(A)表示。 例如: A=[1 3 6; 2 5 8; 3 6 8]; Z=eig(A) 结果为: Z = 15.2382 -1.3365 0.0982 如要同时求出特征向量,采用表达式 [X,V]=eig(A)。 结果为: X = -0.4135 -0.6094 -0.6765 V = 15.2382 0 0

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Matlab 使用经验分享
    • Matlab 的起源
      • 为什么选择 Matlab?
        • 一些常用函数介绍
          • 矩阵常见计算
            • 矩阵输入
            • 矩阵的转置
          • 矩阵的加减
            • 矩阵乘法
          • 矩阵的行列式
            • 矩阵求逆
          • 函数拟合
            • 矩阵特征值
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档