Пересечение окружности и прямой

Пересечение окружности и прямой - проблема с выражением в roots() - Сообщения

#1 Опубликовано: 25.11.2012 17:42:17
Rubidy

Rubidy

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

Группа: User

Попробовал реализовать пример решения системы уравнений, не выходит каменный цветок.

[LIVE width=402 height=395]http://smath.info/live/?file=4147[/LIVE]

Может кто уже рассматривал подобное?
Пересечение окружности и прямой.sm (6 КиБ) скачан 32 раз(а).
#2 Опубликовано: 25.11.2012 18:23:20
Fridel Selitsky

Fridel Selitsky

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

Группа: Moderator

Я пользуюсь такой программой:
Пересечение окружности и прямой1.sm (11 КиБ) скачан 29 раз(а).
Метод расчета рычажных механизмов : http://www.exponenta.ru/educat/systemat/selitskiy-ivanov/index.asp
#3 Опубликовано: 25.11.2012 18:37:51
Rubidy

Rubidy

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

Группа: User

Спасибо большое.
Тут загвоздка в том, что детям хотел пример по roots() показать, честно (спёртый) переделанный из Mathcad'а, т.е. цель не решить любым способом, а именно с помощью roots...
Эх, возьму какую нибудь синусоиду.. А на ваш пример можно ссылаться, как пример программирования.
#4 Опубликовано: 25.11.2012 20:37:43
Rubidy

Rubidy

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

Группа: User

Получилось.
Было непреодолимое сочетание исходных значений для алгоритма поиска корней.
Причём глючило довольно большое количество комбинаций наклона прямой и начальных приближений.


Пересечение окружности и прямой2.png
#5 Опубликовано: 26.11.2012 10:32:59
Медведев Виктор

Медведев Виктор

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

Группа: User

Wrote

Получилось.


Получилось относительно. Ведь и самая первая система тоже имеет решение. А подбирать коэффициенты для того, чтобы продемонстрировать работу функции в частном случае... Ведь должна же работать для любой задачи.
#6 Опубликовано: 26.11.2012 11:59:15
zhuk

zhuk

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

Группа: User

главное велик ездит. криво, правда, и колеса квадратные, но ездит же!
неофициальный справочник https://sites.google.com/site/mikkhalichlab/home jabber конференция smath@conference.jabber.ru
#7 Опубликовано: 26.11.2012 13:07:02
Rubidy

Rubidy

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

Группа: User

Wrote


Получилось относительно. Ведь и самая первая система тоже имеет решение.


Имеет конечно, переделываю методичку по Mathcad, там всё решалось. Уровень пользователей - самый начальный. Но я не могу исправить SMath, так и выбрать другой пакет.

Смолёт летит, по факту летит, потому что никто из посторонних не знает, куда он должен лететь, а в это время происходит отделка кабины, замена двигателей, электроники, создание оружия.... так работает free-soft

Надеюсь Андрей обратит внимание на этот глюк roots().

А из комментариев меня интересуют конкретные предложения. Наверняка я недостаточно разобрался с пакетом, с августа, когда есть время, пробую что-то в нём делать.

Кроме того, демонстрация возможностей - это одно, а реальные задачи - совсем другое. Сейчас моя задача в том, чтобы показать, что работает, заинтересовать. Используя инструмент, человек учится обходить его недостатки или превращать в достоинства.


Тут возник другой вопрос - как СОЗДАТЬ массив функциями augment и stack В ЦИКЛЕ?
Просто создать - просто M := stack(x1;x2;x3;x4;x5)
а вот M := stack(M;(x1;x2;x3;x4;x5)), когда перед циклом M не определён...
Это в цикле пытаюсь сделать массив точек графика (в некоторых случаях может быть пуст)
Было бы классно, если бы использование в этих операторах неопределенного ранее массива воспринималось как соответствие любому, далее идущему размеру с созданием первой строки/столбца.
Пока выкрутился присваиванием значений поэлементно, но мне кажется. есть более красивое однострочное решение.
Кроме того, я пока не знаю как проверить в программе, что массив пуст без генерации ошибки, т.е. не определён.

Очень жаль, что stack не добавляет в алгебраическую систему строку, это дало бы возможность автоматически формировать набор графиков в цикле в зависимости от их количества.
#8 Опубликовано: 26.11.2012 19:24:31
Mike Kaganski

Mike Kaganski

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

Группа: User

Wrote

Кроме того, я пока не знаю как проверить в программе, что массив пуст без генерации ошибки, т.е. не определён.


[MATH]if(IsDefined(M);length(M)>0;0)[/MATH]
Wrote

Очень жаль, что stack не добавляет в алгебраическую систему строку, это дало бы возможность автоматически формировать набор графиков в цикле в зависимости от их количества.


http://ru.smath.info/forum/yaf_postsm8230_Itieratsionnyie-vychislieniia.aspx#post8230
Wrote


[MATH]v:sys(0;1;1)[/MATH]

[MATH]for(i;range(1;10);el(v;i):i)[/MATH]

[MATH lang=ENG]v=sys(1,2,3,4,5,6,7,8,9,10,10,1)[/MATH]



И зря Вы так про бесплатное ПО. В смысле, оно, конечно, так, но это относится к любому ПО, только для коммерческого больше красивых обёрток, поэтому кривости часто сглажены. Посмотрите на комментарии Валерия Фёдоровича, чуть ли не через раз встречается что-то типа "такая же проблема была в MathCAD версии 13, в версии Prime это исправлено". Ну и ничего, летит же?
С уважением, Михаил Каганский
#9 Опубликовано: 27.11.2012 10:10:26
Rubidy

Rubidy

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

Группа: User

Wrote


[MATH]if(IsDefined(M);length(M)>0;0)[/MATH]

http://ru.smath.info/forum/yaf_postsm8230_Itieratsionnyie-vychislieniia.aspx#post8230

Wrote


[MATH]v:sys(0;1;1)[/MATH]
[MATH]for(i;range(1;10);el(v;i):i)[/MATH]
[MATH lang=ENG]v=sys(1,2,3,4,5,6,7,8,9,10,10,1)[/MATH]



И зря Вы так про бесплатное ПО. В смысле, оно, конечно, так, но это относится к любому ПО, только для коммерческого больше красивых обёрток, поэтому кривости часто сглажены. Посмотрите на комментарии Валерия Фёдоровича, чуть ли не через раз встречается что-то типа "такая же проблема была в MathCAD версии 13, в версии Prime это исправлено". Ну и ничего, летит же?



Спасибо за ссылки и фрагменты!

А про free-soft я как раз с комплиментом - работает, глюки исправляются. Это просто здорово, что есть возможность как пользоваться, так и помогать в разработке. К разработчикам платного софта не так просто и достучаться.
#10 Опубликовано: 27.11.2012 10:20:13
Медведев Виктор

Медведев Виктор

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

Группа: User

Wrote


Wrote

Очень жаль, что stack не добавляет в алгебраическую систему строку, это дало бы возможность автоматически формировать набор графиков в цикле в зависимости от их количества.


http://ru.smath.info/forum/yaf_postsm8230_Itieratsionnyie-vychislieniia.aspx#post8230
Wrote


[MATH]v:sys(0;1;1)[/MATH]

[MATH]for(i;range(1;10);el(v;i):i)[/MATH]

[MATH lang=ENG]v=sys(1,2,3,4,5,6,7,8,9,10,10,1)[/MATH]





Присоединяюсь к предыдущему товарищу и хочу внести свои пять копеек (см. рисунок)

Безымянный.png
#11 Опубликовано: 28.11.2012 15:27:18
Rubidy

Rubidy

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

Группа: User

Спасибо, понятно.
А матрицу СОЗДАТЬ нельзя внутри цикла со stack? чтобы не делать большой блок присвоений перед циклом для первой строки..



Из этого получилось вот что (базовый уровень):
1. Поиск экстремума методом перебора значений (демонстрация операторов цикла и условия)
2. Поиск экстремума аналитическим методом (демонстрация символьных вычислений, solve и работы с системой уравнений)
Экстремумы 2.sm (14 КиБ) скачан 24 раз(а).
#12 Опубликовано: 28.11.2012 17:53:09
Mike Kaganski

Mike Kaganski

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

Группа: User

Wrote

А матрицу СОЗДАТЬ нельзя внутри цикла со stack? чтобы не делать большой блок присвоений перед циклом для первой строки..


Честно сказать, настойчивое желание заставить любую функцию работать в неких крайних условиях именно так, как хочется в отдельно взятом случае, абсолютно непродуктивно. Вам в Вашем случае это удобно, причём по не очень убедительной причине: чтобы не писать лишние строчки. А у кого-то из-за такого функционала в реально сложном алгоритме появятся неочевидные ошибки, которые связаны с неявными действиями программы: раньше они были бы просто выявлены, а так всё будет работать, но выдавать некорректные результаты.

Вот как выглядит "большой блок присвоений перед циклом":

[MATH lang=ENG]M:matrix(0,5)[/MATH]

[MATH lang=ENG]for(k,range(1,3),M:stack(M,mat(k,k*2,k*3,k*4,k*5,1,5)))[/MATH]

[MATH lang=ENG]M=mat(1,2,3,4,5,2,4,6,8,10,3,6,9,12,15,3,5)[/MATH]
С уважением, Михаил Каганский
#13 Опубликовано: 28.11.2012 18:20:09
Rubidy

Rubidy

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

Группа: User

О! т.е. можно указать реальное количество столбцов и ноль строк! то, что надо! Великолепно!
Экстремумы 2a.sm (14 КиБ) скачан 33 раз(а).
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений