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

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