Два режима работы - с единицами измерения и без них

Два режима работы - с единицами измерения и без них - Messages

#1 Posted: 8/6/2012 12:35:59 AM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Последние версии SMath позволяют работать с единицами измерений - метрами, килограммами и тд.
Но многие расчеты не требуют этого инструмента. В этом случае его лучше отключить.
Но если он включен, то
a:=1
a+a^2=error
Нельзя складывать величину и ее квадрат и тд!
#2 Posted: 8/6/2012 12:01:26 PM
Mikka

Mikka

36 likes in 206 posts.

Group: User

А зачем собственно отключать? Просто не пользуйтесь единицами и все!
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
#3 Posted: 8/10/2012 4:01:10 PM
Rubidy

Rubidy

1 likes in 32 posts.

Group: User

Wrote

Последние версии SMath позволяют работать с единицами измерений - метрами, килограммами и тд.
Но многие расчеты не требуют этого инструмента. В этом случае его лучше отключить.
Но если он включен, то
a:=1
a+a^2=error
Нельзя складывать величину и ее квадрат и тд!



...и для таких случаев жесткой проверки ввести специальную единицу измерения - безразмерную
Тогда в документе можно будет записать и полином.
#4 Posted: 8/11/2012 9:06:27 AM
Mikka

Mikka

36 likes in 206 posts.

Group: User

Народ да зачем? Можно же просто считать без единиц измерения вообще!!
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
2 users liked this post
Davide Carpi 8/11/2012 2:07:00 PM, Mike Kaganski 8/11/2012 4:36:00 PM
#5 Posted: 8/12/2012 12:29:48 AM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

Народ да зачем? Можно же просто считать без единиц измерения вообще!!


Конечно, можно!
Можно, вообще, без компьютера считать...

Единицы измерения помогают избегать многих ошибок.
Языки программирования и электронные таблицы (а для многих это основной элемент счета) отучили нас от хорошего стиля счета, когда обрабатываются и числа и размерности.
Подробнее
http://twt.mpei.ac.ru/ochkov/T-2011/Chapter2-Units.pdf
#6 Posted: 8/12/2012 8:49:02 AM
Mike Kaganski

Mike Kaganski

184 likes in 434 posts.

Group: User

Wrote

Последние версии SMath позволяют работать с единицами измерений - метрами, килограммами и тд.
Но многие расчеты не требуют этого инструмента. В этом случае его лучше отключить.
Но если он включен, то
a:=1
a+a^2=error
Нельзя складывать величину и ее квадрат и тд!


Wrote

Wrote

Народ да зачем? Можно же просто считать без единиц измерения вообще!!


Конечно, можно!
Можно, вообще, без компьютера считать...

Единицы измерения помогают избегать многих ошибок.
Языки программирования и электронные таблицы (а для многих это основной элемент счета) отучили нас от хорошего стиля счета, когда обрабатываются и числа и размерности.
Подробнее
twt.mpei.ac.ru/ochkov/T-2011/Chapter2-Units.pdf



Хм. А что вообще значил первый пост?
Я почему-то воспринял его как жалобу на невозможность складывать томаты и форматы. И господин mikka вполне выразил решения этого "затруднения", вовсе не призывая всех срочно забыть о возможности ясно выразить мысль, используя размерности.

А вот теперь я уже не так уверен, что правильно понял посыл топикстартера.

Для пущей ясности:
если нужно избавиться от единиц (например, какие-нибудь эмпирики), было бы концептуально правильно делить размерную величину, переданную в функцию, на её единицы измерения прямо перед расчётом в самой функции. А если несколько алгоритмов (с разными физическими феличинами) используют сходные формулы, создать некую функцию, обрабатывающую безразмерные величины, и несколько функций-"обёрток" для каждого случая, каждая из которых избавляется от своей единицы перед вызовом общего метода.

В этом случае заодно сохраняется "контроль типов", т.к. если передать в такую функцию величину не той природы, это вызовет ошибку.

Хотя, похоже, я пишу банальности, которые в этой ветке все превосходно понимают, не понятно только, ап чём спор.
С уважением, Михаил Каганский
2 users liked this post
Mikka 8/12/2012 9:30:00 AM, Davide Carpi 8/12/2012 1:08:00 PM
#7 Posted: 8/13/2012 2:15:58 AM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

Wrote

Последние версии SMath позволяют работать с единицами измерений - метрами, килограммами и тд.
Но многие расчеты не требуют этого инструмента. В этом случае его лучше отключить.
Но если он включен, то
a:=1
a+a^2=error
Нельзя складывать величину и ее квадрат и тд!


Wrote

Wrote

Народ да зачем? Можно же просто считать без единиц измерения вообще!!


Конечно, можно!
Можно, вообще, без компьютера считать...

Единицы измерения помогают избегать многих ошибок.
Языки программирования и электронные таблицы (а для многих это основной элемент счета) отучили нас от хорошего стиля счета, когда обрабатываются и числа и размерности.
Подробнее
twt.mpei.ac.ru/ochkov/T-2011/Chapter2-Units.pdf



Хм. А что вообще значил первый пост?
Я почему-то воспринял его как жалобу на невозможность складывать томаты и форматы. И господин mikka вполне выразил решения этого "затруднения", вовсе не призывая всех срочно забыть о возможности ясно выразить мысль, используя размерности.

А вот теперь я уже не так уверен, что правильно понял посыл топикстартера.

Для пущей ясности:
если нужно избавиться от единиц (например, какие-нибудь эмпирики), было бы концептуально правильно делить размерную величину, переданную в функцию, на её единицы измерения прямо перед расчётом в самой функции. А если несколько алгоритмов (с разными физическими феличинами) используют сходные формулы, создать некую функцию, обрабатывающую безразмерные величины, и несколько функций-"обёрток" для каждого случая, каждая из которых избавляется от своей единицы перед вызовом общего метода.

В этом случае заодно сохраняется "контроль типов", т.к. если передать в такую функцию величину не той природы, это вызовет ошибку.

Хотя, похоже, я пишу банальности, которые в этой ветке все превосходно понимают, не понятно только, ап чём спор.


Спор "ап том", что если включен механизм контроля размерностей, то
а:=2
a+a^2=error, а не 6
Нельзя складывать величину и ее квадрат.

#8 Posted: 8/13/2012 2:23:41 AM
Mike Kaganski

Mike Kaganski

184 likes in 434 posts.

Group: User

Вы это утверждаете (т.е. описываете существующее поведение программы на Вашем компьютере) или предлагаете (к реализации в будущих версиях)?
С уважением, Михаил Каганский
#9 Posted: 8/13/2012 2:48:36 AM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Такого в программе нет, но, подозреваю, что в некоторых случаях было бы очень удобно.

Если суммировать всё выше сказанное, то просьба сделать такой режим программы, в котором выражение 5+5^2 будет выдавать ошибку при попытке вычисления (так как слагаемые имеют разную степень).
#10 Posted: 8/13/2012 4:23:10 AM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

Такого в программе нет, но, подозреваю, что в некоторых случаях было бы очень удобно.

Если суммировать всё выше сказанное, то просьба сделать такой режим программы, в котором выражение 5+5^2 будет выдавать ошибку при попытке вычисления (так как слагаемые имеют разную степень).


При включенном режиме контроля размерностей должно быть так:

a:=5
a+a^2=error

но
5+5^2=30
#11 Posted: 8/13/2012 5:12:22 AM
Mike Kaganski

Mike Kaganski

184 likes in 434 posts.

Group: User

А можно поподробнее концепцию полезности этого режима?

Честно, Валерий Фёдорович, не могу понять.
Во-первых, о "границах дозволенного".
Пусть я представил себе, что a - это длина бруса.
Насколько допустимо a + ( a * b )?
А вдруг b - это не число брусьев, а их ширина?

Как быть с выражениями типа sin(x)+sin(y)^2?

А что делать с такой ситуацией:
f(x):=x^2*очень_сложно_вычисляемый_коэффициент(x)
a:=5
a+eval(f(a)) ?

Во-вторых, о методологическом смысле. Почему вообще может возникнуть запрет на сложение безразмерных чисел? Только потому, что кто-то вообразил, что всё понятие числа укладывается в рамки "физической величины"?
Если ввести такой режим, кому может это помочь? Человеку, который последовательно использует единицы измерения и избавляется от них только в строго обоснованных случаях?
Или человеку, который сознательно не использует единицы измерения, поскольку его задачи именно чисто математические и не ограничены "физическими смыслами" произведений, степеней, производных и т.д.?
Или человеку, который ленится мыслить и выражать свои мысли строго и чётко, и поэтому не хочет использовать единицы измерения? И поэтому ему сильно поможет, что он не может сложить длины с площадями, но при этом он с удовольствием сможет сложить градусы и радианы, или метры с футами? И сочетать уклоны (мм/м) и влагосодержания (г/кг)?

Компьютер не может думать за человека. Особенно в случае математики и программ математического характера. Помогать учиться мыслить - это да, но не позволять говорить: "Да складывать число и его квадрат нельзя! Почему? Потому что SMath этого не даёт!"

Единицы измерения - это явное выражение концепции физической величины. Это основы метрологии. И не надо вводить ещё некий "режим", призванный делать то же самое, но при этом математически (и логически) непоследовательно, и методически непроработанно и необоснованно.
С уважением, Михаил Каганский
#12 Posted: 8/13/2012 5:42:26 AM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

А можно поподробнее концепцию полезности этого режима?

Честно, Валерий Фёдорович, не могу понять.
Во-первых, о "границах дозволенного".
Пусть я представил себе, что a - это длина бруса.
Насколько допустимо a + ( a * b )?
А вдруг b - это не число брусьев, а их ширина?

Как быть с выражениями типа sin(x)+sin(y)^2?

А что делать с такой ситуацией:
f(x):=x^2*очень_сложно_вычисляемый_коэффициент(x)
a:=5
a+eval(f(a)) ?

Во-вторых, о методологическом смысле. Почему вообще может возникнуть запрет на сложение безразмерных чисел? Только потому, что кто-то вообразил, что всё понятие числа укладывается в рамки "физической величины"?
Если ввести такой режим, кому может это помочь? Человеку, который последовательно использует единицы измерения и избавляется от них только в строго обоснованных случаях?
Или человеку, который сознательно не использует единицы измерения, поскольку его задачи именно чисто математические и не ограничены "физическими смыслами" произведений, степеней, производных и т.д.?
Или человеку, который ленится мыслить и выражать свои мысли строго и чётко, и поэтому не хочет использовать единицы измерения? И поэтому ему сильно поможет, что он не может сложить длины с площадями, но при этом он с удовольствием сможет сложить градусы и радианы, или метры с футами? И сочетать уклоны (мм/м) и влагосодержания (г/кг)?

Компьютер не может думать за человека. Особенно в случае математики и программ математического характера. Помогать учиться мыслить - это да, но не позволять говорить: "Да складывать число и его квадрат нельзя! Почему? Потому что SMath этого не даёт!"

Единицы измерения - это явное выражение концепции физической величины. Это основы метрологии. И не надо вводить ещё некий "режим", призванный делать то же самое, но при этом математически (и логически) непоследовательно, и методически непроработанно и необоснованно.


Читаю в задачнике по математике:
Дана функция f(x)=...
Найти x, при которых производная функции больше самой функции.
Я говорю автору, замените "самой функции" на, допустим, пяти.
В сути задачи ничего не изменится, но мы обойдем скльзкое место - нельзя сравнивать функцию и ее производную, в этом сравнении нет никакого смысла. Более того, тут кроется ошибка - см. выше.


1 users liked this post
Mikka 8/13/2012 10:14:00 AM
#13 Posted: 8/13/2012 6:11:12 AM
Mike Kaganski

Mike Kaganski

184 likes in 434 posts.

Group: User

Опять Вы ограничиваетесь неким "смыслом" - это может быть физический смысл, или геометрический, или ...
"Смысл" математического понятия служит двум целям.
Во-первых, помогает осознать понятие при знакомстве с ним.
Во-вторых, указывает известные явления (реального) мира, описываемые этим понятием.
Но математическое понятие шире этого. И при нахождении новых зависимостей, описываемых этим понятием, появятся новые смыслы. Математика - это наука, требующая бесконечного воображения, естественно, обученного, но не ограниченного.
С уважением, Михаил Каганский
#14 Posted: 8/13/2012 6:57:06 AM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Wrote

a:=5
a+a^2=error

но
5+5^2=30


А вот тут уже и я не понял. Если указано что a=5, то какая разница между a и 5?

Wrote

А можно поподробнее концепцию полезности этого режима?


Мне кажется это могло бы быть полезно, к примеру, при использовании расчётов, изначально подготовленных без единиц измерения (и не важно, было ли это сделано в SMath Studio, в Excel или в методичке) - это бы дало возможность выявления ошибок, допущенных в оригинальном документе.
#15 Posted: 8/13/2012 8:30:21 AM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

Опять Вы ограничиваетесь неким "смыслом" - это может быть физический смысл, или геометрический, или ...
"Смысл" математического понятия служит двум целям.
Во-первых, помогает осознать понятие при знакомстве с ним.
Во-вторых, указывает известные явления (реального) мира, описываемые этим понятием.
Но математическое понятие шире этого. И при нахождении новых зависимостей, описываемых этим понятием, появятся новые смыслы. Математика - это наука, требующая бесконечного воображения, естественно, обученного, но не ограниченного.


Вот и я предлагаю иметь два режима работы SMath:
- свободный математический (единицы измерения отключены)
- физический, когда нельзя складывать метры с килограммами, величину с ее квадратом или синусом, функцию с ее производной и тд

#16 Posted: 8/13/2012 9:38:37 AM
Davide Carpi

Davide Carpi

1415 likes in 2872 posts.

Group: Moderator

привет всем

честно говоря, я немного потерял

Я думаю, что только улучшение будет показано в приложении (правая колонка) и Bult-функцию, чтобы безразмерные данной переменной (которые могут уже быть построен как фрагмент с немного терпения)

можно было бы думать, однако, ввести четвертый тип оценки, безразмерный, но SMath это программа, и потребности правил ...
(2 м) + (2 м) ^ 2 = 2 + 2 ^ 2 (все в м) или 200 +200 ^ 2 (все в см) или 2 + 200 ^ 2 (смесь)?
и в результате сумма смешанных подразделений (не связаны отношениями власти) (2 Вт) + (2 м) = 2 + 2 или что-то еще?

Прости меня за язык, я использую переводчика Google


С наилучшими пожеланиями,

w3b5urf3r
units.png
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
1 users liked this post
Mikka 8/13/2012 10:16:00 AM
#17 Posted: 8/13/2012 6:47:16 PM
Mike Kaganski

Mike Kaganski

184 likes in 434 posts.

Group: User

Насчёт dimLess(a).

Эта функция, хотя программно и реализуемая, методически неправильна.
Попробуйте представить обратную ей функцию.

[MATH]a:2m[/MATH]

[MATH]b:dimLess(a;cm)[/MATH]

[MATH]c:b^2[/MATH]

[MATH]d:dimmed(c;cm^2)[/MATH]
здесь явно видно, что произошло.


[MATH]b:dimLess(a)[/MATH]

[MATH]c:b^2[/MATH]

[MATH]d:dimmed(c)[/MATH]
???

И вообще, "простое" избавление от единиц может быть основано только на принятой "базовой" системе единиц - а это лишь соглашение, которое может изменяться со временем.
Банально:

[MATH]a:5km[/MATH]

[MATH]b:a/m[/MATH]

[MATH]c:a/cm[/MATH]

[MATH]d:dimLess(a)[/MATH]

Очевидна разница значений b (число метров в отрезке) и c (число сантиметров в отрезке). А чему равна d? Числу чего в отрезке? Если бы я жил в Британии, я бы, возможно, удивился, увидев там 5000. И я могу понять человека, который бы ожидал увидеть там 5 на основании того, что первоначальное присвоение было произведено в км.

Можно было бы представить себе функцию, которая не избавляется от единиц, а сохраняет единицы в отдельной переменной для последующего использования. Мне кажется, что избавляться от единиц нужно только временно, для использования в функциях, требующих безразмерных величин. По крайней мере, я не знаю других причин. Так вот, после преобразований можно было бы осмысленно возвращать размерности:

[MATH]f(x):line(unitlessVar:dimLess(x;unitsBackup);y:linterp(unitlessVar;vec1;vec2);dimmed(y;unitsBackup^2);3;1)[/MATH]

И даже в такой (часто очень желательной) форме нужно отдавать себе отчёт в применимости такой операции. Так, в этом примере ещё надо, чтобы интерполируемая зависимость не была связана с единицами измерений - а где такую взять для нетривиального случая? Так что даже здесь было бы лучше, если бы большее число функций программы просто позволяли работать с единицами, а не требовали избавляться от них.
С уважением, Михаил Каганский
1 users liked this post
Davide Carpi 8/13/2012 7:58:00 PM
#18 Posted: 8/13/2012 8:07:29 PM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

привет всем

честно говоря, я немного потерял

Я думаю, что только улучшение будет показано в приложении (правая колонка) и Bult-функцию, чтобы безразмерные данной переменной (которые могут уже быть построен как фрагмент с немного терпения)

можно было бы думать, однако, ввести четвертый тип оценки, безразмерный, но SMath это программа, и потребности правил ...
(2 м) + (2 м) ^ 2 = 2 + 2 ^ 2 (все в м) или 200 +200 ^ 2 (все в см) или 2 + 200 ^ 2 (смесь)?
и в результате сумма смешанных подразделений (не связаны отношениями власти) (2 Вт) + (2 м) = 2 + 2 или что-то еще?

Прости меня за язык, я использую переводчика Google


С наилучшими пожеланиями,

w3b5urf3r


Ok
a:=5
a+a^2= not 30 and error but a+a^2
#19 Posted: 8/13/2012 8:18:21 PM
Davide Carpi

Davide Carpi

1415 likes in 2872 posts.

Group: Moderator

Привет,

Wrote

Насчёт dimLess(a).

Эта функция, хотя программно и реализуемая, методически неправильна.
Попробуйте представить обратную ей функцию.

[MATH]a:2m[/MATH]

[MATH]b:dimLess(a;cm)[/MATH]

[MATH]c:b^2[/MATH]

[MATH]d:dimmed(c;cm^2)[/MATH]
здесь явно видно, что произошло.


[MATH]b:dimLess(a)[/MATH]

[MATH]c:b^2[/MATH]

[MATH]d:dimmed(c)[/MATH]
???

И вообще, "простое" избавление от единиц может быть основано только на принятой "базовой" системе единиц - а это лишь соглашение, которое может изменяться со временем.
Банально:

[MATH]a:5km[/MATH]

[MATH]b:a/m[/MATH]

[MATH]c:a/cm[/MATH]

[MATH]d:dimLess(a)[/MATH]

Очевидна разница значений b (число метров в отрезке) и c (число сантиметров в отрезке). А чему равна d? Числу чего в отрезке? Если бы я жил в Британии, я бы, возможно, удивился, увидев там 5000. И я могу понять человека, который бы ожидал увидеть там 5 на основании того, что первоначальное присвоение было произведено в км.



Конечно, на самом деле фрагмент в приложении выше, родился именно для использования в SMath (только), когда встроенные функции требуют безразмерные переменные, как и в [MATH]linterp(#)[/MATH] (используйте b:=a/UoM(a) или b:=dimLess(a) , чтобы получить безразмерное значение в единицы SMath умолчанию UoM () для получения указанных единицы); "базовой" системе единиц является внутренним SMath умолчанию система единиц (я обновил пример, чтобы лучше показать, как это работает).
Восстановление блока, очевидно, должны быть сделаны со знанием фактов, в противном случае результат будет как чистый безразмерное число, не физическом смысле, и даже это просто ошибка.

Wrote

Можно было бы представить себе функцию, которая не избавляется от единиц, а сохраняет единицы в отдельной переменной для последующего использования. Мне кажется, что избавляться от единиц нужно только временно, для использования в функциях, требующих безразмерных величин. По крайней мере, я не знаю других причин. Так вот, после преобразований можно было бы осмысленно возвращать размерности:

[MATH]f(x):line(unitlessVar:dimLess(x;unitsBackup);y:linterp(unitlessVar;vec1;vec2);dimmed(y;unitsBackup^2);3;1)[/MATH]

И даже в такой (часто очень желательной) форме нужно отдавать себе отчёт в применимости такой операции. Так, в этом примере ещё надо, чтобы интерполируемая зависимость не была связана с единицами измерений - а где такую взять для нетривиального случая? Так что даже здесь было бы лучше, если бы большее число функций программы просто позволяли работать с единицами, а не требовали избавляться от них.



Я согласен
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
#20 Posted: 8/13/2012 11:12:19 PM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

А почему, собственно, функция linterp и другие подобные должна работать только с безразмерными аргументами. В Mathcad Prime эту не доработку исправляют.
  • New Posts New Posts
  • No New Posts No New Posts