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

Тогда в документе можно будет записать и полином.
WroteНарод да зачем? Можно же просто считать без единиц измерения вообще!!
Конечно, можно!
Можно, вообще, без компьютера считать...

Единицы измерения помогают избегать многих ошибок.
Языки программирования и электронные таблицы (а для многих это основной элемент счета) отучили нас от хорошего стиля счета, когда обрабатываются и числа и размерности.
Подробнее
http://twt.mpei.ac.ru/ochkov/T-2011/Chapter2-Units.pdf
WroteПоследние версии SMath позволяют работать с единицами измерений - метрами, килограммами и тд.
Но многие расчеты не требуют этого инструмента. В этом случае его лучше отключить.
Но если он включен, то
a:=1
a+a^2=error
Нельзя складывать величину и ее квадрат и тд!
WroteWroteНарод да зачем? Можно же просто считать без единиц измерения вообще!!
Конечно, можно!
Можно, вообще, без компьютера считать...![]()
Единицы измерения помогают избегать многих ошибок.
Языки программирования и электронные таблицы (а для многих это основной элемент счета) отучили нас от хорошего стиля счета, когда обрабатываются и числа и размерности.
Подробнее
twt.mpei.ac.ru/ochkov/T-2011/Chapter2-Units.pdf
Хм. А что вообще значил первый пост?
Я почему-то воспринял его как жалобу на невозможность складывать томаты и форматы. И господин mikka вполне выразил решения этого "затруднения", вовсе не призывая всех срочно забыть о возможности ясно выразить мысль, используя размерности.
А вот теперь я уже не так уверен, что правильно понял посыл топикстартера.
Для пущей ясности:
если нужно избавиться от единиц (например, какие-нибудь эмпирики), было бы концептуально правильно делить размерную величину, переданную в функцию, на её единицы измерения прямо перед расчётом в самой функции. А если несколько алгоритмов (с разными физическими феличинами) используют сходные формулы, создать некую функцию, обрабатывающую безразмерные величины, и несколько функций-"обёрток" для каждого случая, каждая из которых избавляется от своей единицы перед вызовом общего метода.
В этом случае заодно сохраняется "контроль типов", т.к. если передать в такую функцию величину не той природы, это вызовет ошибку.
Хотя, похоже, я пишу банальности, которые в этой ветке все превосходно понимают, не понятно только, ап чём спор.
WroteWroteПоследние версии SMath позволяют работать с единицами измерений - метрами, килограммами и тд.
Но многие расчеты не требуют этого инструмента. В этом случае его лучше отключить.
Но если он включен, то
a:=1
a+a^2=error
Нельзя складывать величину и ее квадрат и тд!WroteWroteНарод да зачем? Можно же просто считать без единиц измерения вообще!!
Конечно, можно!
Можно, вообще, без компьютера считать...![]()
Единицы измерения помогают избегать многих ошибок.
Языки программирования и электронные таблицы (а для многих это основной элемент счета) отучили нас от хорошего стиля счета, когда обрабатываются и числа и размерности.
Подробнее
twt.mpei.ac.ru/ochkov/T-2011/Chapter2-Units.pdf
Хм. А что вообще значил первый пост?
Я почему-то воспринял его как жалобу на невозможность складывать томаты и форматы. И господин mikka вполне выразил решения этого "затруднения", вовсе не призывая всех срочно забыть о возможности ясно выразить мысль, используя размерности.
А вот теперь я уже не так уверен, что правильно понял посыл топикстартера.
Для пущей ясности:
если нужно избавиться от единиц (например, какие-нибудь эмпирики), было бы концептуально правильно делить размерную величину, переданную в функцию, на её единицы измерения прямо перед расчётом в самой функции. А если несколько алгоритмов (с разными физическими феличинами) используют сходные формулы, создать некую функцию, обрабатывающую безразмерные величины, и несколько функций-"обёрток" для каждого случая, каждая из которых избавляется от своей единицы перед вызовом общего метода.
В этом случае заодно сохраняется "контроль типов", т.к. если передать в такую функцию величину не той природы, это вызовет ошибку.
Хотя, похоже, я пишу банальности, которые в этой ветке все превосходно понимают, не понятно только, ап чём спор.
Спор "ап том", что если включен механизм контроля размерностей, то
а:=2
a+a^2=error, а не 6
Нельзя складывать величину и ее квадрат.
Если суммировать всё выше сказанное, то просьба сделать такой режим программы, в котором выражение 5+5^2 будет выдавать ошибку при попытке вычисления (так как слагаемые имеют разную степень).
WroteТакого в программе нет, но, подозреваю, что в некоторых случаях было бы очень удобно.
Если суммировать всё выше сказанное, то просьба сделать такой режим программы, в котором выражение 5+5^2 будет выдавать ошибку при попытке вычисления (так как слагаемые имеют разную степень).
При включенном режиме контроля размерностей должно быть так:
a:=5
a+a^2=error
но
5+5^2=30
Честно, Валерий Фёдорович, не могу понять.
Во-первых, о "границах дозволенного".
Пусть я представил себе, что a - это длина бруса.
Насколько допустимо a + ( a * b )?
А вдруг b - это не число брусьев, а их ширина?
Как быть с выражениями типа sin(x)+sin(y)^2?
А что делать с такой ситуацией:
f(x):=x^2*очень_сложно_вычисляемый_коэффициент(x)
a:=5
a+eval(f(a)) ?
Во-вторых, о методологическом смысле. Почему вообще может возникнуть запрет на сложение безразмерных чисел? Только потому, что кто-то вообразил, что всё понятие числа укладывается в рамки "физической величины"?
Если ввести такой режим, кому может это помочь? Человеку, который последовательно использует единицы измерения и избавляется от них только в строго обоснованных случаях?
Или человеку, который сознательно не использует единицы измерения, поскольку его задачи именно чисто математические и не ограничены "физическими смыслами" произведений, степеней, производных и т.д.?
Или человеку, который ленится мыслить и выражать свои мысли строго и чётко, и поэтому не хочет использовать единицы измерения? И поэтому ему сильно поможет, что он не может сложить длины с площадями, но при этом он с удовольствием сможет сложить градусы и радианы, или метры с футами? И сочетать уклоны (мм/м) и влагосодержания (г/кг)?
Компьютер не может думать за человека. Особенно в случае математики и программ математического характера. Помогать учиться мыслить - это да, но не позволять говорить: "Да складывать число и его квадрат нельзя! Почему? Потому что SMath этого не даёт!"
Единицы измерения - это явное выражение концепции физической величины. Это основы метрологии. И не надо вводить ещё некий "режим", призванный делать то же самое, но при этом математически (и логически) непоследовательно, и методически непроработанно и необоснованно.
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, при которых производная функции больше самой функции.
Я говорю автору, замените "самой функции" на, допустим, пяти.
В сути задачи ничего не изменится, но мы обойдем скльзкое место - нельзя сравнивать функцию и ее производную, в этом сравнении нет никакого смысла. Более того, тут кроется ошибка - см. выше.
"Смысл" математического понятия служит двум целям.
Во-первых, помогает осознать понятие при знакомстве с ним.
Во-вторых, указывает известные явления (реального) мира, описываемые этим понятием.
Но математическое понятие шире этого. И при нахождении новых зависимостей, описываемых этим понятием, появятся новые смыслы. Математика - это наука, требующая бесконечного воображения, естественно, обученного, но не ограниченного.
Wrotea:=5
a+a^2=error
но
5+5^2=30
А вот тут уже и я не понял. Если указано что a=5, то какая разница между a и 5?
WroteА можно поподробнее концепцию полезности этого режима?
Мне кажется это могло бы быть полезно, к примеру, при использовании расчётов, изначально подготовленных без единиц измерения (и не важно, было ли это сделано в SMath Studio, в Excel или в методичке) - это бы дало возможность выявления ошибок, допущенных в оригинальном документе.
WroteОпять Вы ограничиваетесь неким "смыслом" - это может быть физический смысл, или геометрический, или ...
"Смысл" математического понятия служит двум целям.
Во-первых, помогает осознать понятие при знакомстве с ним.
Во-вторых, указывает известные явления (реального) мира, описываемые этим понятием.
Но математическое понятие шире этого. И при нахождении новых зависимостей, описываемых этим понятием, появятся новые смыслы. Математика - это наука, требующая бесконечного воображения, естественно, обученного, но не ограниченного.
Вот и я предлагаю иметь два режима работы SMath:
- свободный математический (единицы измерения отключены)
- физический, когда нельзя складывать метры с килограммами, величину с ее квадратом или синусом, функцию с ее производной и тд
честно говоря, я немного потерял

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

С наилучшими пожеланиями,
w3b5urf3r
Эта функция, хотя программно и реализуемая, методически неправильна.
Попробуйте представить обратную ей функцию.
[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]
И даже в такой (часто очень желательной) форме нужно отдавать себе отчёт в применимости такой операции. Так, в этом примере ещё надо, чтобы интерполируемая зависимость не была связана с единицами измерений - а где такую взять для нетривиального случая? Так что даже здесь было бы лучше, если бы большее число функций программы просто позволяли работать с единицами, а не требовали избавляться от них.
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
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]
И даже в такой (часто очень желательной) форме нужно отдавать себе отчёт в применимости такой операции. Так, в этом примере ещё надо, чтобы интерполируемая зависимость не была связана с единицами измерений - а где такую взять для нетривиального случая? Так что даже здесь было бы лучше, если бы большее число функций программы просто позволяли работать с единицами, а не требовали избавляться от них.
Я согласен

-
Новые сообщения
-
Нет новых сообщений