【问题标题】:Convert a matrix of syms to doubles将符号矩阵转换为双精度
【发布时间】:2020-11-18 13:26:53
【问题描述】:

我遇到了一个问题,我需要使用函数 r 的雅可比行列式。 r是一个向量[x1exp(x2t)],其中t是一个向量t = [0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0];

为了计算这个,我已经完成了

syms x1 x2
r = [x1*exp(x2*t)];

jacobian(r)

ans =

[     exp(x2/2),       (x1*exp(x2/2))/2]
[       exp(x2),             x1*exp(x2)]
[ exp((3*x2)/2), (3*x1*exp((3*x2)/2))/2]
[     exp(2*x2),         2*x1*exp(2*x2)]
[ exp((5*x2)/2), (5*x1*exp((5*x2)/2))/2]
[     exp(3*x2),         3*x1*exp(3*x2)]
[ exp((7*x2)/2), (7*x1*exp((7*x2)/2))/2]
[     exp(4*x2),         4*x1*exp(4*x2)]

有没有一种简单的方法可以将此矩阵转换为值矩阵?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以使用 subs 替换值。

     >> subs(ans, [x1, x2], [1.4, 2.5])
    
    ans =
    
    [ exp(5/4),   (7*exp(5/4))/10]
    [ exp(5/2),    (7*exp(5/2))/5]
    [exp(15/4), (21*exp(15/4))/10]
    [   exp(5),     (14*exp(5))/5]
    [exp(25/4),   (7*exp(25/4))/2]
    [exp(15/2),  (21*exp(15/2))/5]
    [exp(35/4), (49*exp(35/4))/10]
    [  exp(10),    (28*exp(10))/5]
    

    这仍然是 class sym,但您可以使用 double 转换为双精度

    double(ans)
    
    ans =
    
       1.0e+05 *
    
        0.0000    0.0000
        0.0001    0.0002
        0.0004    0.0009
        0.0015    0.0042
        0.0052    0.0181
        0.0181    0.0759
        0.0631    0.3092
        0.2203    1.2335
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-17
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      相关资源
      最近更新 更多