1 Pages (10 items)
Ошибка вычисления функции пользователя? - Messages
#1 Posted: 11/28/2014 1:01:33 AM
Имеется некий расчет, представленный по ссылке: Лист2.sm
Алгоритм выбирает ту, или иную функцию по заданному условию, после чего вычисляет её значения в точках с заданным шагом l.
Проблема: значения, полученные в матрице Y -не верны, однако, прямое обращение к функции уКП(10*'м,C)=0.003*'м -даёт правильный ответ. Правильный ответ даёт и прямое обращение к функции уРС(L,С)...
Что идёт не так?
Лист3.sm (6 KiB) downloaded 51 time(s).
Алгоритм выбирает ту, или иную функцию по заданному условию, после чего вычисляет её значения в точках с заданным шагом l.
Проблема: значения, полученные в матрице Y -не верны, однако, прямое обращение к функции уКП(10*'м,C)=0.003*'м -даёт правильный ответ. Правильный ответ даёт и прямое обращение к функции уРС(L,С)...
Что идёт не так?
Лист3.sm (6 KiB) downloaded 51 time(s).
#2 Posted: 11/28/2014 1:58:36 AM
Возведение в степень скаляра и вектора дают разные результаты
С уважением,
Михаил Каганский
#3 Posted: 11/28/2014 2:06:16 AM
WroteВозведение в степень скаляра и вектора дают разные результаты
Согласен с такой трактовкой.
Но ведь в функцию в обоих случаях (основном и проверочном) попадают образмеренные переменные? Можно-ли как-то проверить: что туда попадает?
#4 Posted: 12/1/2014 12:54:31 PM
Подкинем свеженькое поленце: тот-же файл без единиц измерений добавлен к головному посту...
#5 Posted: 12/9/2014 3:25:28 PM
Окончательное доказательство правоты mikekaganski см. файл Лист3
Что ставит на повестку дня извечный русский вопрос: Что делать?
Что ставит на повестку дня извечный русский вопрос: Что делать?
#6 Posted: 12/10/2014 6:24:33 AM
Для SMath, похоже, возведение вектора в степень равно последовательному скалярному умножению вектора самого на себя соответствующее число раз.
Квадрат вектора, таким образом - это скаляр, равный сумме квадратов элементов (что и следовало ожидать).
Куб вектора - это квадрат вектора (скаляр), умноженный на вектор - то есть, результат - это вектор. Хм. Я не специалист, но мне почему-то не нравится.
Четвёртая степень - это третья степень вектора (вектор), умноженная на вектор -> результат - скаляр...
Ну, не знаю, не знаю. Мне почему-то казалось, что это должны быть все скаляры, равные сумме соответственных степеней элементов...
Как бы то ни было, это - никак не поэлементное возведение в степень, требующаяся уважаемому OP. Для поэлементного возведения нужна отдельная функция.
Прикреплённый пример использует функцию IsArray(#var) (автор w3b5urf3r_reloaded) из этой темы.
Лист3.sm (9 KiB) downloaded 48 time(s).
Квадрат вектора, таким образом - это скаляр, равный сумме квадратов элементов (что и следовало ожидать).
Куб вектора - это квадрат вектора (скаляр), умноженный на вектор - то есть, результат - это вектор. Хм. Я не специалист, но мне почему-то не нравится.
Четвёртая степень - это третья степень вектора (вектор), умноженная на вектор -> результат - скаляр...
Ну, не знаю, не знаю. Мне почему-то казалось, что это должны быть все скаляры, равные сумме соответственных степеней элементов...
Как бы то ни было, это - никак не поэлементное возведение в степень, требующаяся уважаемому OP. Для поэлементного возведения нужна отдельная функция.
Прикреплённый пример использует функцию IsArray(#var) (автор w3b5urf3r_reloaded) из этой темы.
Лист3.sm (9 KiB) downloaded 48 time(s).
С уважением,
Михаил Каганский
#7 Posted: 2/2/2015 8:16:18 PM
я столкнулся с такой же проблемой, когда возведение в степень меняет размерность и преодолеть это невозможно( в частности при работе с ^2 и ^4 в одной формуле, что странно, производим действия над значением, а не его размерностью, понимаю иногда это оправдано, но иногда попадаешь в тупик, бывает, что такой единицы измерения нет в программе, не удалять же из-за одной формулы единицы измерения у всех остальных.
единицы измерения.sm (4 KiB) downloaded 50 time(s).
единицы измерения.sm (4 KiB) downloaded 50 time(s).
#8 Posted: 2/2/2015 11:55:05 PM
Как Вам уже указал w3b5urf3r_reloaded здесь, у Вас совсем другая проблема. Возведение в степень меняет размерность? А Вы что хотели? Это как бы нормально. Если Вы умножаете длину на длину (это и есть возведение длины в квадрат), вы получаете площадь. Чтобы сложить несколько равных отрезков, нужно длину умножить на безразмерную величину "число отрезков". И возникновение таких "ошибок" свидетельствует, что написанная формула не имеет физического смысла.
А если формула, используемая Вами, получена не аналитически, а эмпирически (в таких формулах часто перемножают всё на всё), то есть в ней действительно не физический, а чисто математический смысл, то в неё и передавать физические величины (например, длины) нельзя, и уж извините, Вам придётся при работе с математическими пакетами вручную предусматривать "костыли" для обхода таких "кривых" формул. Ведь только Вы знаете, как именно длина должна быть преобразована к безразмерной величине: это должно быть 200 (миллиметров) или 0,2 (метра)? Как длина это одно и то же, а как безразмерное число для возведения в степень - совсем не одно и то же. Например, если Вы знаете, что в Вашу формулу будут передавать длины, это можно сделать так:

А если формула, используемая Вами, получена не аналитически, а эмпирически (в таких формулах часто перемножают всё на всё), то есть в ней действительно не физический, а чисто математический смысл, то в неё и передавать физические величины (например, длины) нельзя, и уж извините, Вам придётся при работе с математическими пакетами вручную предусматривать "костыли" для обхода таких "кривых" формул. Ведь только Вы знаете, как именно длина должна быть преобразована к безразмерной величине: это должно быть 200 (миллиметров) или 0,2 (метра)? Как длина это одно и то же, а как безразмерное число для возведения в степень - совсем не одно и то же. Например, если Вы знаете, что в Вашу формулу будут передавать длины, это можно сделать так:
С уважением,
Михаил Каганский
#9 Posted: 2/3/2015 12:49:10 AM
Wroteя столкнулся с такой же проблемой, не удалять же из-за одной формулы единицы измерения у всех остальных.
С той, да не с той.
В вашей формуле, внутри скобок, три слагаемых. Третье слагаемое- имеет размерность мм, второе мм, а вот первое (альфа)- безразмерное.
Что делать: либо везде размерности снимать, но я-бы, наоборот, альфу образмерил.
Wroteвручную предусматривать "костыли" для обхода таких "кривых" формул.
Для нас, технарей, снятие/возвращение размерностей лучше делать на полях документа, дабы формулы не теряли привычный коллегам вид.
#10 Posted: 2/3/2015 7:00:25 AM
WroteТретье слагаемое- имеет размерность мм, второе мм, а вот первое (альфа)- безразмерное
Ну, не совсем так: второе - 1/мм², третье - 1/мм⁴.
WroteЧто делать: либо везде размерности снимать, но я-бы, наоборот, альфу образмерил
Кстати, да. Только одну альфу недостаточно. Придётся образмеривать и бету, и гамму. Они все должны быть длинами.
С уважением,
Михаил Каганский
1 Pages (10 items)
-
New Posts
-
No New Posts