В первой части вы должны использовать круглые скобки, чтобы указать желаемую группировку. Когда вы пишете 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
- коэффициент конверсии можно определить постфактум. В общем, допущение переинтерпретации выражений постфактум, как мне кажется, является математическим подходом.
person
Robert Dodier
schedule
09.05.2020