Why I have no

Why I have no - Normal and Tangent - Сообщения

#1 Опубликовано: 23.09.2023 13:38:17
Valery Ochkov

Valery Ochkov

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

Группа: User

NT.png
Krivizna-x3-metry.sm (21 КиБ) скачан 27 раз(а).
#2 Опубликовано: 23.09.2023 16:20:34
Вячеслав Мезенцев

Вячеслав Мезенцев

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

Группа: Moderator

It's hard to explain how it works, but the problem is in the units.

xyplot-with-units.png
Russia ☭ forever, Viacheslav N. Mezentsev
1 пользователям понравился этот пост
Valery Ochkov 24.09.2023 00:33:00
#3 Опубликовано: 23.09.2023 17:14:50
Martin Kraska

Martin Kraska

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

Группа: Moderator

The original algorithm is not robust in the vicinity of x=0 and not suited for x<0.

Alternative approach:

2023-09-23 22_05_12-SMath Solver - [Krivizna-x3-metry.sm_].png
Krivizna-x3-metry_Kr.sm (20 КиБ) скачан 28 раз(а).
Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
3 пользователям понравился этот пост
Valery Ochkov 24.09.2023 00:33:00, Oscar Campo 23.09.2023 18:01:00, Вячеслав Мезенцев 24.09.2023 03:14:00
#4 Опубликовано: 24.09.2023 00:37:27
Valery Ochkov

Valery Ochkov

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

Группа: User

The question was why the function works without meters, but normal and tangent meters are needed.
В детстве, когда я спрашивал "почему", мне часто отвечали "по качану". Это был самый правильный ответ.
meter.png
#5 Опубликовано: 24.09.2023 01:50:16
Вячеслав Мезенцев

Вячеслав Мезенцев

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

Группа: Moderator

Дело тут в том, что изначально XY Plot не поддерживал единицы измерений и сейчас не очень поддерживает. В отличие от Mathcad, где их можно задать на самой оси графика, здесь этого сделать нельзя. По этой причине по оси X у нас в свойствах компонента задан безразмерный диапазон чисел от xmin до xmax.

XY Plot честно подставляет число из этого диапазона. Если это сделать для функции, которая работает с размерностями, то будет ошибка в вычислениях:

smath-xyplot-units-issue.jpg

XY Plot устроен так, что он пытается отобразить всё, что сможет из того, что задано. Если при вычислении какого-то выражения возникли ошибки, то оно не отображается. Это помогает искать ошибки, т.к. можно понять по графикам что именно не отобразилось, а значит - не вычислилось.

Поскольку в XY Plot нет места, где можно указать размерность, я ввёл возможность делать подсказку для компонента - можно писать размерность рядом с неизвестным аргументом у функции. Но это работает только в некоторых простейших случаях.

Теперь представьте себя на месте компонента XY Plot. У вас есть диапазон по X, он безразмерный. Вы видите на входе выражение для нормали fN(x) и пытаетесь подставить туда число, чтобы получить значение по y. Выражение не вычислится. Будет "тихая" ошибка и график не построится.

f(x) не имеет такой проблемы, потому что некоторые выражения работают с безразмерными аргументами.

По этой же причине вам приходится уравнение окружности делать безразмерным, т.к. иначе будут ошибки в вычислениях и окружность не построится. Добавить размерность к x и y аргументам по аналогии не получится, т.к. это слишком сложный случай для разбора в общем случае и компонент XY Plot не может этого сделать.

Можно решить эту проблему так, как это сделано в Mathcad - путём явного указания размерности для каждой оси. Но для этого нужно изменить сам компонент, что для меня не тривиально, т.к. у меня нет опыта добавления новых placeholder'ов. Их трудно программировать.
Russia ☭ forever, Viacheslav N. Mezentsev
1 пользователям понравился этот пост
Valery Ochkov 24.09.2023 08:45:00
#6 Опубликовано: 24.09.2023 07:07:28
Martin Kraska

Martin Kraska

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

Группа: Moderator

In Maxima graphics, the base units are set to 1. Units like cm and mm are respected because they are properly converted to base units.

This is not the same as activating the "ignore units" context menu item. If that is activated, 1 cm is the same as 1 m.

2023-09-24 11_53_21-SMath Solver - [Krivizna-x3-metry_Kr.sm_].png
Krivizna-x3-metry_Draw_Kr.sm (190 КиБ) скачан 16 раз(а).

units.sm (55 КиБ) скачан 23 раз(а).
units_001.png
Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
1 пользователям понравился этот пост
Valery Ochkov 24.09.2023 08:45:00
#7 Опубликовано: 24.09.2023 08:48:45
Valery Ochkov

Valery Ochkov

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

Группа: User

Thanks to all!
About this problem in English
Tramway.pdf (1 МиБ) скачан 35 раз(а).
I will be glad to hear your comments and additions!

My solution for real street cab with units
Krivizna-x3-metry.sm (18 КиБ) скачан 21 раз(а).
3b-meter.png
3v-meter.png
1 пользователям понравился этот пост
Oscar Campo 25.09.2023 06:38:00
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений