设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1546|回复: 0

MATLAB解决数学模型基础

[复制链接]

14

主题

293

金钱

373

积分

入门用户

发表于 2019-10-17 15:31:16 | 显示全部楼层 |阅读模式

一、矩阵的表示
  MATLAB的强大功能在于能够处理向量或矩阵,这项功能是c语言,c++等不能比拟的。比如线性规划问题,多方程组求解问题。如果把方程直接用代码表示出来是十分麻烦的,如果运用线性代数中的思想,用矩阵的方式表示,不论求解速度,还是写代码速度将会大大提升。
1.矩阵的输入
  本文列举了三种矩阵的输入,一般简单的矩阵,可直接安航方式输入每个元素;同行中的元素用逗号或空格符分隔,且空格数不限;不同的行的用分号。
  1. T=[11 12 1 2 3 4 5 6 7 8 9]

  2. T =

  3.     11    12     1     2     3     4     5     6     7     8     9

  4.  X=[1,2,3;4,5,6;7,8,9]%三行三列的矩阵

  5. X =

  6.      1     2     3
  7.      4     5     6
  8.      7     8     9

  9. >> U=[]%空矩阵

  10. U =

  11.      []
复制代码



2.复数矩阵的输入
注意方法一中矩阵c中可以做数学运算
  1. %方法一
  2. a=1;b=2;
  3. c=[1,3*a+i*b,b*sqrt(a);sin(pi/5),a+7*b,3.9+1]

  4. c =

  5.    1.0000 + 0.0000i   3.0000 + 2.0000i   2.0000 + 0.0000i
  6.    0.5878 + 0.0000i  15.0000 + 0.0000i   4.9000 + 0.0000i
  7.  %方法二
  8. R=[1 2 3;4 5 6];M=[7 8 9;10 11 12];
  9. >> RM=R+i*M

  10. RM =

  11.    1.0000 + 7.0000i   2.0000 + 8.0000i   3.0000 + 9.0000i
  12.    4.0000 +10.0000i   5.0000 +11.0000i   6.0000 +12.0000i
复制代码


3.字符矩阵的输入
sym:符号矩阵定义函数,定义一个符号或者表达式,长度没有限制,使用方法如下所示。
syms:符号定义函数,适用范围没有sym广
输入字符矩阵限定一些字符变量,再像定义普通矩阵一样输入字符矩阵。
  1. >> m1=sym('class');
  2. >> m2=sym('yello2');
  3. >> m3=sym('green');
  4. >> m123=[a,b,c;m1,m2,m3;1,2,3]

  5. m123 =

  6. [     a,      b,     c]
  7. [ class, yello2, green]
  8. [     1,      2,     3]

  9. %sym还可以将数值型转化为符号型。
  10. >> digit_ma=[0.3 sqrt(3) 3.1;exp(0.3) log(10) 23^.5];
  11. >> syms_ma=sym(digit_ma)

  12. syms_ma =

  13. [                              3/10,                           3^(1/2),    31/10]
  14. [ 3039611811401035/2251799813685248, 2592480341699211/1125899906842624, 23^(1/2)]

  15. >> digit_ma
  16. digit_ma =
  17.     0.3000    1.7321    3.1000
  18.     1.3499    2.3026    4.7958
复制代码


4.特殊矩阵的使用
有些特殊矩阵,可用matlab中的函数生成,例如:
全零阵函数zeros
  1. a=zeros(3)

  2. a =

  3.      0     0     0
  4.      0     0     0
  5.      0     0     0

  6. >> zeros(3,4)

  7. ans =

  8.      0     0     0     0
  9.      0     0     0     0
  10.      0     0     0     0
复制代码

还有单位矩阵函数eye,全1阵函数ones,均匀分布随即矩阵函数rand,正态分布随机矩阵函数randn,产生随即排列函数randperm,计算矩阵中元素个数numel等等,其用法大同小异,需要用时网上都有。


二、复杂数学函数的求解
1.函数求导
  1. syms H C K x
  2. T=(H/C)*((1/cos(x))+[1+(K-tan(x))^2]^(1/2));
  3. dfdx=diff(T,x)

  4. dfdx =

  5. (H*(sin(x)/cos(x)^2 - ((tan(x)^2 + 1)*(K - tan(x)))/((K - tan(x))^2 + 1)^(1/2)))/C
复制代码

其中T函数为所需求导的函数,diff函数用于求解函数导数和矩阵差分的。

  matlab在求解复杂数学函数方面功能是非常强大的,不论求导还是积分,还是更复杂的函数,均可用matlab中已经封装好的函数求解,在此,本文不再详细叙述,日常用到时可以网上搜集方法。

三、线性方程组的求解
1.齐次方程组通解
  1. >> A=[1 2 2 1;2 1 -2 -2;1 -1 -4 -3];
  2. >> format rat  %指定有理式格式
  3. >> B=null(A,'r')%求解空间的有理基

  4. B =

  5.        2              5/3     
  6.       -2             -4/3     
  7.        1              0      
  8.        0              1      

  9. >> b=rref(A)%通过最简行得到基

  10. b =

  11.        1              0             -2             -5/3     
  12.        0              1              2              4/3     
  13.        0              0              0              0   
复制代码


2、非齐次方程组通解
matlab中求解该方程组的方法有很多,本文只列举了一种最简便地方法。
  1. >> A=[1 1 -3 -1; 3 -1 -3 4;1 5 -9 -8];
  2. >> b=[1 4 0]';
  3. >> B=[A b];
  4. >> C=rref(B)
  5. C =
  6.        1              0             -3/2            3/4            5/4     
  7.        0              1             -3/2           -7/4           -1/4     
  8.        0              0              0              0              0     
复制代码


四·、简单的分析
matlab还可以用于简单的数学分析工具,比如线性回归/拟合/绘图等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表