MATLAB解决数学模型基础

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

 T=[11 12 1 2 3 4 5 6 7 8 9]

T =

    11    12     1     2     3     4     5     6     7     8     9

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

X =

     1     2     3
     4     5     6
     7     8     9

>> U=[]%空矩阵

U =

     []

2.复数矩阵的输入
  注意方法一中矩阵c中可以做数学运算

 %方法一
 a=1;b=2;
 c=[1,3*a+i*b,b*sqrt(a);sin(pi/5),a+7*b,3.9+1]

c =

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

RM =

   1.0000 + 7.0000i   2.0000 + 8.0000i   3.0000 + 9.0000i
   4.0000 +10.0000i   5.0000 +11.0000i   6.0000 +12.0000i

3.字符矩阵的输入
sym:符号矩阵定义函数,定义一个符号或者表达式,长度没有限制,使用方法如下所示。
syms:符号定义函数,适用范围没有sym广
输入字符矩阵限定一些字符变量,再像定义普通矩阵一样输入字符矩阵。

>> m1=sym('class');
>> m2=sym('yello2');
>> m3=sym('green');
>> m123=[a,b,c;m1,m2,m3;1,2,3]

m123 =

[     a,      b,     c]
[ class, yello2, green]
[     1,      2,     3]

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

syms_ma =

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

>> digit_ma
digit_ma =
    0.3000    1.7321    3.1000
    1.3499    2.3026    4.7958

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

 a=zeros(3)

a =

     0     0     0
     0     0     0
     0     0     0

>> zeros(3,4)

ans =

     0     0     0     0
     0     0     0     0
     0     0     0     0

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

                  二、复杂数学函数的求解
1.函数求导

 syms H C K x
T=(H/C)*((1/cos(x))+[1+(K-tan(x))^2]^(1/2));
dfdx=diff(T,x)

dfdx =

(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.齐次方程组通解

>> A=[1 2 2 1;2 1 -2 -2;1 -1 -4 -3];
>> format rat  %指定有理式格式
>> B=null(A,'r')%求解空间的有理基

B =

       2              5/3     
      -2             -4/3     
       1              0       
       0              1       

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

b =

       1              0             -2             -5/3     
       0              1              2              4/3     
       0              0              0              0   

2、非齐次方程组通解
matlab中求解该方程组的方法有很多,本文只列举了一种最简便地方法。

>> A=[1 1 -3 -1; 3 -1 -3 4;1 5 -9 -8];
>> b=[1 4 0]';
>> B=[A b];
>> C=rref(B)
C =
       1              0             -3/2            3/4            5/4     
       0              1             -3/2           -7/4           -1/4     
       0              0              0              0              0     

                  四·、简单的分析
matlab还可以用于简单的数学分析工具,比如线性回归/拟合/绘图等。

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值