1 страниц (7 вхождений)
Why I have no - Normal and Tangent - Сообщения
#1 Опубликовано: 23.09.2023 13:38:17
#2 Опубликовано: 23.09.2023 16:20:34
1 пользователям понравился этот пост
Valery Ochkov 24.09.2023 00:33:00
#3 Опубликовано: 23.09.2023 17:14:50
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](/ru-RU/file/UNLToH/2023-09-23-22_05_12-SMath-Solver---_Krivizna-x3-metry_sm___png)
Krivizna-x3-metry_Kr.sm (20 КиБ) скачан 28 раз(а).
Alternative approach:
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
#5 Опубликовано: 24.09.2023 01:50:16
Дело тут в том, что изначально XY Plot не поддерживал единицы измерений и сейчас не очень поддерживает. В отличие от Mathcad, где их можно задать на самой оси графика, здесь этого сделать нельзя. По этой причине по оси X у нас в свойствах компонента задан безразмерный диапазон чисел от xmin до xmax.
XY Plot честно подставляет число из этого диапазона. Если это сделать для функции, которая работает с размерностями, то будет ошибка в вычислениях:

XY Plot устроен так, что он пытается отобразить всё, что сможет из того, что задано. Если при вычислении какого-то выражения возникли ошибки, то оно не отображается. Это помогает искать ошибки, т.к. можно понять по графикам что именно не отобразилось, а значит - не вычислилось.
Поскольку в XY Plot нет места, где можно указать размерность, я ввёл возможность делать подсказку для компонента - можно писать размерность рядом с неизвестным аргументом у функции. Но это работает только в некоторых простейших случаях.
Теперь представьте себя на месте компонента XY Plot. У вас есть диапазон по X, он безразмерный. Вы видите на входе выражение для нормали fN(x) и пытаетесь подставить туда число, чтобы получить значение по y. Выражение не вычислится. Будет "тихая" ошибка и график не построится.
f(x) не имеет такой проблемы, потому что некоторые выражения работают с безразмерными аргументами.
По этой же причине вам приходится уравнение окружности делать безразмерным, т.к. иначе будут ошибки в вычислениях и окружность не построится. Добавить размерность к x и y аргументам по аналогии не получится, т.к. это слишком сложный случай для разбора в общем случае и компонент XY Plot не может этого сделать.
Можно решить эту проблему так, как это сделано в Mathcad - путём явного указания размерности для каждой оси. Но для этого нужно изменить сам компонент, что для меня не тривиально, т.к. у меня нет опыта добавления новых placeholder'ов. Их трудно программировать.
XY Plot честно подставляет число из этого диапазона. Если это сделать для функции, которая работает с размерностями, то будет ошибка в вычислениях:
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
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](/ru-RU/file/TqPyvQ/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 раз(а).

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.
Krivizna-x3-metry_Draw_Kr.sm (190 КиБ) скачан 16 раз(а).
units.sm (55 КиБ) скачан 23 раз(а).
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
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 раз(а).


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 раз(а).
1 пользователям понравился этот пост
Oscar Campo 25.09.2023 06:38:00
1 страниц (7 вхождений)
-
Новые сообщения
-
Нет новых сообщений