MATLAB中exp和expm各自的用法是什么?有什么区别?
exp(x): 求的是矩阵x中的每个元素的e指数。这个矩阵x可以是任意矩阵;
expm(x):求的是矩阵x的指数。这个矩阵x只能是方阵;在matlab内部,采用的是pade近似算法来计算的。
在matlab中举个例子,你看一下:
x=[1 2 3; 4 5 6]; %计算2行3列矩阵的exp, 得到的是每个元素的exp
>> exp(x)
ans =
2.7183 7.3891 ? 20.0855
54.5982 ?148.4132 ?403.4288
>> expm(x) ?%用这个函数就出错,原因是此时x不是方阵
Error using ==> mtimesInner matrix dimensions must agree.
Error in ==> expm>PadeApproximantOfDegree at 118
A2 = A*A; A4 = A2*A2; A6 = A2*A4;
Error in ==> expm at 39
F = PadeApproximantOfDegree(m_vals(end));
>> expm([1 2 3; 4 5 6 ; 7 8 9]) %此时expm()内部是一个3行3列方阵,可见结果正确
ans =
1.0e+006 *
1.1189 1.3748 1.6307
2.5339 3.1134 3.6929
3.9489 4.8520 5.7552
在MATLAB里面,矩阵之间的算术运算按照线性代数的规则进行
例子:
而数组之间的运算是数组对应元素间进行一一计算
例子:
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!