Sirius' blog Sirius' blog
首页
  • 学习笔记

    • 《C++》
    • 《MATLAB》
    • 《Python》
  • 学习笔记

    • 《Git》
    • 《CMake》
  • 技术文档
  • 博客搭建
  • 学习
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Sirius0v0

怕什么真理无穷,进一寸有一寸的欢喜
首页
  • 学习笔记

    • 《C++》
    • 《MATLAB》
    • 《Python》
  • 学习笔记

    • 《Git》
    • 《CMake》
  • 技术文档
  • 博客搭建
  • 学习
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 学习笔记

    • Matlab在数模上的应用——基础打杂篇
      • 矩阵相关
      • 数学函数
      • 符号表达式
        • 调用sym函数
        • 调用syms函数
        • 用subs计算符号表达式的值
        • 用符号变量进行因式分解、展开和化简
        • 符号函数画图
      • 二维绘图
        • plotyy(x1,y1,x2,y2)双纵坐标图
        • subplot(m,n,p)创建子窗口
        • scatter(x,y,sz,c)散点图
        • fimplicit(f)隐函数绘图
        • polarplot()极坐标图
        • bar()直方图
        • hist()统计直方图
        • stairs()阶梯图
        • stem()火柴杆图
        • rose()统计扇形图
        • comet()彗星曲线
        • pie()饼状图
        • errorbar()误差条形图
        • quiver()向量场图
        • streamline() 流线图
        • area()区域图
        • convhull()凸壳图
        • compass()复数向量图(罗盘图)
        • feather()复数向量投影图(羽毛图)
    • Matlab在制导控制的应用(科学计算)
    • Matlab在制导控制的应用(线性控制)
    • S-Function入门——基础介绍
    • Level-1 Matlab S-Function编写入门
    • C-Mex S-Function编写入门
  • 踩坑记录

  • 《MATLAB》与控制
  • 学习笔记
Sirius0v0
2020-05-18
目录

Matlab在数模上的应用——基础打杂篇

# MATLAB体系结构

MATLAB产品由若干模块组成,不同的模块完成完成不同的功能,主要包括以下几个模块。

matlab产品结构

MATLAB:MATLAB核心与基础;

MATLAB Toolboxes:囊括不同领域的算法程序包;

MATLAB Compiler: MATLAB Compiler这种编译器可以将MATLAB程序文件编译生成标准的C/C++语言文件,提高程序的运行效率;

Simulink: 以窗口图形方式、专门用于连续或离散时间的动态系统建模、分析和仿真;

Simulink Blocksets:围绕着Simulink仿真核心所开发的应用程序包,称为模块集(Blocksets);

Real-Time Workshop (RTW):实时代码生成工具,它能够根据Simulink模型生成程序源代码,并打包、编译所生成的源代码生成实时应用程序;

Stateflow: Stateflow是基于有限状态机理论针对复杂的事件驱动系统进行建模、仿真的工具。

Stateflow Coder: Stateflow Coder是基于Stateflow状态图生成高效、优化的程序代码。

# 一些函数的归纳

# 矩阵相关

函数 描述
rand(m,n) m行n列均匀分布随机数阵
randn(m,n) m行n列正态分布随机数阵
diag(v) 一维数组v为对角元的对角阵

# 数学函数

功能 函数
三角函数 sin() sinh() sind() asin() asind() ......
指数函数 exp() log() log10() log2() ......
累乘、累加 cumprod() cumsum()
向零方向取整 fix()
向$-\infty$取整 floor()
向$+\infty$取整 ceil()
四舍五入 round()
余数 rem(m,n)
符号函数 sign()

# 符号表达式

# 调用sym函数

# 建立符号数

>> sym (num)

>> sym(1/3)
 
ans =
 
1/3

# 建立符号变量

>> y = sym('x',[1 10])
 
y =
 
[ x1, x2, x3, x4, x5, x6, x7, x8, x9, x10]

# 建立符号矩阵

>> X=sym('X',[2 2])
 
X =
 
[ X1_1, X1_2]
[ X2_1, X2_2]
>> X=sym('X%d%d',[2 2])
 
X =
 
[ X11, X12]
[ X21, X22]
>> X=str2sym('[a b c;d e f; g h d]') %由于新版本 str2sym代替sym
 
X =
 
[ a, b, c]
[ d, e, f]
[ g, h, d]

# 调用syms函数

# 建立符号变量

>> syms y u;

在建立符号变量之后,符号表达式、符号矩阵都可以自行建立

>> syms x y d q f
>> A = [x y d; q f y; x d q]
 
A =
 
[ x, y, d]
[ q, f, y]
[ x, d, q]

# 用subs计算符号表达式的值

subs(符号表达式,{符号变量},{数值})

>> A = sym('A%d%d',[2 2]);
>> DA = det(A)
 
DA =
 
A11*A22 - A12*A21
 
>> subs(DA,{A(1) A(2) A(3) A(4)},{1 2 2 1})
 
ans =
 
-3

# 用符号变量进行因式分解、展开和化简

# collect合并同类项

>> syms x y
>> collect(x^2*y + y*x - x^2 - 2*x)
 
ans =
 
(y - 1)*x^2 + (y - 2)*x

# expand展开

>> syms x y
>> expand((x+1)^3)
 
ans =
 
x^3 + 3*x^2 + 3*x + 1

# factor因式分解

>> syms x y
>> factor(x^3+3*x^2*y+3*y^2*x+y^3)
 
ans =
 
[ x + y, x + y, x + y]

# simplify化简

>> syms x
>> simplify(sin(x)^2 + cos(x)^2)
 
ans =
 
1

# simplifyFraction化简有理式

>> syms x
>> simplifyFraction((x^2-1)/(x+1))
 
ans =
 
x - 1

# partfrac部分分式分解

>> syms x
>> partfrac(1/(x^2 + x), x)
 
ans =
 
1/x - 1/(x + 1)

# 符号函数画图

  1. ezpolar(f,[a,b]) 绘制$\rho = \rho(\theta)$极坐标函数曲线
>> syms theta
>> rho = theta;
>> ezpolar(rho,[0,4*pi])
ezploar画法演示
  1. fplot(f,[a,b]) 绘制$f(x)$在区间$[a,b]$上的图形

    fplot(xt,yt,[tmin,tmax]) 绘制表示的曲线

>> fplot(@(x) exp(x),[-3 0],'b')
>> hold on
>> fplot(@(x) cos(x),[0 3],'b')
>> hold off
>> grid on
fplot画法演示
  1. fimplicit() 可参阅下节内容,同时还有其他函数,可自行查阅帮助文档,例如:fplot3(),fmesh,fsurf,fcontour,fimplicit3 ......

# 二维绘图

# plotyy(x1,y1,x2,y2)双纵坐标图

x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);

figure % new figure
[hAx,hLine1,hLine2] = plotyy(x,y1,x,y2);

title('Multiple Decay Rates')
xlabel('Time (\musec)')

ylabel(hAx(1),'Slow Decay') % left y-axis 
ylabel(hAx(2),'Fast Decay') % right y-axis
plotyy画法演示

# subplot(m,n,p)创建子窗口

  • 创建子图分割
  • 创建m行n列图窗,p从左至右,由上到下为顺序

# scatter(x,y,sz,c)散点图

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = 25;
c = linspace(1,10,length(x));
scatter(x,y,sz,c,'filled')
scatter画法演示

# fimplicit(f)隐函数绘图

y = @(x,y) y.*sin(x) + x.*cos(y) - 1;
fp = fimplicit(y);
fp.Color = 'r';
fp.LineStyle = '--';
fp.LineWidth = 2;
fimplicit画法演示

# polarplot()极坐标图

theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta);
polarplot(theta,rho)
polarplot画法演示

# bar()直方图

# hist()统计直方图

# stairs()阶梯图

# stem()火柴杆图

# rose()统计扇形图

# comet()彗星曲线

# pie()饼状图

# errorbar()误差条形图

# quiver()向量场图

# streamline() 流线图

# area()区域图

# convhull()凸壳图

# compass()复数向量图(罗盘图)

# feather()复数向量投影图(羽毛图)

编辑 (opens new window)
#MATLAB#数学建模
上次更新: 2022/04/07, 13:46:09
Matlab在制导控制的应用(科学计算)

Matlab在制导控制的应用(科学计算)→

最近更新
01
ipopt优化库配置及使用
07-21
02
ubuntu离线安装包的方法
07-21
03
其它控件的使用
03-05
更多文章>
Theme by Vdoing | Copyright © 2020-2024 Sirius0v0 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式