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

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

#1 Опубликовано: 06.08.2012 00:35:59
Valery Ochkov

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: User

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

Mikka

36 сообщений из 206 понравились пользователям.

Группа: User

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

Rubidy

1 сообщений из 32 понравились пользователям.

Группа: User

Wrote

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



...и для таких случаев жесткой проверки ввести специальную единицу измерения - безразмерную
Тогда в документе можно будет записать и полином.
#4 Опубликовано: 11.08.2012 09:06:27
Mikka

Mikka

36 сообщений из 206 понравились пользователям.

Группа: User

Народ да зачем? Можно же просто считать без единиц измерения вообще!!
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
2 пользователям понравился этот пост
Davide Carpi 11.08.2012 14:07:00, Mike Kaganski 11.08.2012 16:36:00
#5 Опубликовано: 12.08.2012 00:29:48
Valery Ochkov

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: User

Wrote

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


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

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

Mike Kaganski

184 сообщений из 434 понравились пользователям.

Группа: User

Wrote

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


Wrote

Wrote

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


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

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



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

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

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

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

Хотя, похоже, я пишу банальности, которые в этой ветке все превосходно понимают, не понятно только, ап чём спор.
С уважением, Михаил Каганский
2 пользователям понравился этот пост
Mikka 12.08.2012 09:30:00, Davide Carpi 12.08.2012 13:08:00
#7 Опубликовано: 13.08.2012 02:15:58
Valery Ochkov

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: 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 Опубликовано: 13.08.2012 02:23:41
Mike Kaganski

Mike Kaganski

184 сообщений из 434 понравились пользователям.

Группа: User

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

kmihaylovich

8 сообщений из 131 понравились пользователям.

Группа: User

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

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

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: User

Wrote

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

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


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

a:=5
a+a^2=error

но
5+5^2=30
#11 Опубликовано: 13.08.2012 05:12:22
Mike Kaganski

Mike Kaganski

184 сообщений из 434 понравились пользователям.

Группа: User

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

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

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

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

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

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

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

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: 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 пользователям понравился этот пост
Mikka 13.08.2012 10:14:00
#13 Опубликовано: 13.08.2012 06:11:12
Mike Kaganski

Mike Kaganski

184 сообщений из 434 понравились пользователям.

Группа: User

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

kmihaylovich

8 сообщений из 131 понравились пользователям.

Группа: User

Wrote

a:=5
a+a^2=error

но
5+5^2=30


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

Wrote

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


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

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: User

Wrote

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


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

#16 Опубликовано: 13.08.2012 09:38:37
Davide Carpi

Davide Carpi

1415 сообщений из 2872 понравились пользователям.

Группа: 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 пользователям понравился этот пост
Mikka 13.08.2012 10:16:00
#17 Опубликовано: 13.08.2012 18:47:16
Mike Kaganski

Mike Kaganski

184 сообщений из 434 понравились пользователям.

Группа: 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 пользователям понравился этот пост
Davide Carpi 13.08.2012 19:58:00
#18 Опубликовано: 13.08.2012 20:07:29
Valery Ochkov

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: 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 Опубликовано: 13.08.2012 20:18:21
Davide Carpi

Davide Carpi

1415 сообщений из 2872 понравились пользователям.

Группа: 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 Опубликовано: 13.08.2012 23:12:19
Valery Ochkov

Valery Ochkov

55 сообщений из 633 понравились пользователям.

Группа: User

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