单元的处理有问题吗?或者我遗漏了什么?
load(ezunits);
σ_N: 10000`N/(50`mm*10`mm);
newts: 123`kg*m/s^3; newts `` N; newts + 321 `kg*m/s^2;不会产生人们所希望的:
(%i1) load(ezunits);
(%o1) "C:/maxima-5.43.2/share/maxima/5.43.2/share/ezunits/ezunits.mac"
(%i2) σ_N: 10000`N/(50`mm*10`mm);
(σ_N) 10000 ` (N/500 ` 1/mm^2)
(%i5) newts: 123`kg*m/s^3; newts `` N; newts + 321 `kg*m/s^2;
(newts) 123 ` (kg*m)/s^3
(%o4) 123/s ` N
(%o5) 321 ` (kg*m)/s^2+123 ` (kg*m)/s^3应该是:
σ_N= 20 N/mm^2
newts= 123 N/s发布于 2020-05-10 04:16:11
对于第一部分,您必须使用括号来表示您想要的分组。当您编写a ` b/c时,它被解释为a ` (b/c),但在本例中,您需要(a ` b)/c。(分组的工作方式是这样的,因为它假设像x ` m/s这样的东西比(x ` m)/s更常见。)
(%i2) σ_N: (10000`N)/(50`mm*10`mm);
N
(%o2) 20 ` ---
2
mm为了好玩,让我们检查一下这个量的尺寸。我想应该是力/面积。
(%i3) dimensions (%);
mass
(%o3) ------------
2
length time
(%i4) dimensions (N);
length mass
(%o4) -----------
2
time
(%i5) dimensions (mm);
(%o5) length在我看来是正确的。
对于第二部分,我不明白你想要做什么。变量newts的单位等同于N/s,所以我不明白为什么要将它转换为N,我也不明白为什么要将N/s添加到N中。无论如何,这是我所能理解的。
(%i6) newts: 123`kg*m/s^3;
kg m
(%o6) 123 ` ----
3
s
(%i7) newts `` N/s;
N
(%o7) 123 ` -
s当添加不同维度的数量时,ezunits只是让它保持不变;它不会产生错误或任何东西。
(%i8) newts + 321 ` kg*m/s^2;
kg m kg m
(%o8) 321 ` ---- + 123 ` ----
2 3
s s这样做的动机是,它允许像3`sheep + 2`horse或x`hour + y`dollar这样的东西--转换率可以在事后确定。一般来说,允许表达式在事实发生后重新解释,我相信这是数学态度。
https://stackoverflow.com/questions/61677402
复制相似问题