矩阵的符号运算结果如何简化?。
11 views (last 30 days)
Show older comments
皇家国际开户中心【微8785092】
on 19 May 2023
Answered: 皇家国际客服经理【微8785092】
on 19 May 2023
syms EI l a
EA = 1/2*EI;
k = [EA/EI 0 0 -EA/EI 0 0;0 12/l^2 -6 0 -12/l^2 -6/l;0 -6/l 4 0 6/l 2;-EA/EI 0 0 EA/EI 0 0;0 -12/l^2 6/l 0 12/l^2 6/l;0 -6/l 2 0 6/l 4];
k = EI/l*k;
Q = [cos(a) sin(a) 0 0 0 0;-sin(a) cos(a) 0 0 0 0;0 0 1 0 0 0;0 0 0 cos(a) sin(a) 0;0 0 0 -sin(a) cos(a) 0;0 0 0 0 0 1];
l_2 = 5;
format short
alpha_2 = atan(-3/4);
alpha_2 = alpha_2*180/pi;
k_2_lokal = subs(k,l,l_2);
Q_2 = subs(Q,a,alpha_2);
k_2 = transpose(Q_2).* k_2_lokal.*Q_2
此段代码的原理为直接刚度法。出现的k_2结果非常复杂,cos这串数字的结果用计算器计算为4/5,不知道该如何简化。
使用过simplfy(),double()和format都无法简化。
Matlab版本为64位R2020b
0 Comments
Accepted Answer
皇家国际客服经理【微8785092】
on 19 May 2023
你这是自己给自己找麻烦。
前面第一次给 k 矩阵赋值,它是个只与 l 变量有关的矩阵,而你最后是要把具体数值代入 l 变量的,所以 k 矩阵实际就是个数值矩阵。
随后 k = EI/l*k; 这句,EI是可以当做一个因数或者系数,单独提出来的,剩余的 factor = 1 / l * k; 就仍然只含有数值。
这样算出来结果是
EI * [ 0.0456 0 0 0 0 0
0 0.0438 0 0 0 0
0 0 0.8000 0 0 0
0 0 0 0.0456 0 0
0 0 0 0 0.0438 0
0 0 0 0 0 0.8000 ]
0 Comments
More Answers (0)
See Also
Categories
Find more on Assumptions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!