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

[LIVE width=402 height=395]http://smath.info/live/?file=4147[/LIVE]
Может кто уже рассматривал подобное?
Пересечение окружности и прямой.sm (6 КиБ) скачан 32 раз(а).
Тут загвоздка в том, что детям хотел пример по roots() показать, честно (спёртый) переделанный из Mathcad'а, т.е. цель не решить любым способом, а именно с помощью roots...
Эх, возьму какую нибудь синусоиду.. А на ваш пример можно ссылаться, как пример программирования.
WroteПолучилось.
Получилось относительно. Ведь и самая первая система тоже имеет решение. А подбирать коэффициенты для того, чтобы продемонстрировать работу функции в частном случае...


Wrote
Получилось относительно. Ведь и самая первая система тоже имеет решение.
Имеет конечно, переделываю методичку по Mathcad, там всё решалось. Уровень пользователей - самый начальный. Но я не могу исправить SMath, так и выбрать другой пакет.
Смолёт летит, по факту летит, потому что никто из посторонних не знает, куда он должен лететь, а в это время происходит отделка кабины, замена двигателей, электроники, создание оружия.... так работает free-soft

Надеюсь Андрей обратит внимание на этот глюк roots().
А из комментариев меня интересуют конкретные предложения. Наверняка я недостаточно разобрался с пакетом, с августа, когда есть время, пробую что-то в нём делать.
Кроме того, демонстрация возможностей - это одно, а реальные задачи - совсем другое. Сейчас моя задача в том, чтобы показать, что работает, заинтересовать. Используя инструмент, человек учится обходить его недостатки или превращать в достоинства.
Тут возник другой вопрос - как СОЗДАТЬ массив функциями augment и stack В ЦИКЛЕ?
Просто создать - просто

а вот M := stack(M;(x1;x2;x3;x4;x5)), когда перед циклом M не определён...
Это в цикле пытаюсь сделать массив точек графика (в некоторых случаях может быть пуст)
Было бы классно, если бы использование в этих операторах неопределенного ранее массива воспринималось как соответствие любому, далее идущему размеру с созданием первой строки/столбца.
Пока выкрутился присваиванием значений поэлементно, но мне кажется. есть более красивое однострочное решение.
Кроме того, я пока не знаю как проверить в программе, что массив пуст без генерации ошибки, т.е. не определён.
Очень жаль, что stack не добавляет в алгебраическую систему строку, это дало бы возможность автоматически формировать набор графиков в цикле в зависимости от их количества.
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 это исправлено". Ну и ничего, летит же?
Wrote
[MATH]if(IsDefined(M);length(M)>0;0)[/MATH]
http://ru.smath.info/forum/yaf_postsm8230_Itieratsionnyie-vychislieniia.aspx#post8230Wrote
[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 я как раз с комплиментом - работает, глюки исправляются. Это просто здорово, что есть возможность как пользоваться, так и помогать в разработке. К разработчикам платного софта не так просто и достучаться.
Wrote
WroteОчень жаль, что stack не добавляет в алгебраическую систему строку, это дало бы возможность автоматически формировать набор графиков в цикле в зависимости от их количества.
http://ru.smath.info/forum/yaf_postsm8230_Itieratsionnyie-vychislieniia.aspx#post8230Wrote
[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]
Присоединяюсь к предыдущему товарищу и хочу внести свои пять копеек (см. рисунок)
А матрицу СОЗДАТЬ нельзя внутри цикла со stack? чтобы не делать большой блок присвоений перед циклом для первой строки..
Из этого получилось вот что (базовый уровень):
1. Поиск экстремума методом перебора значений (демонстрация операторов цикла и условия)
2. Поиск экстремума аналитическим методом (демонстрация символьных вычислений, solve и работы с системой уравнений)
Экстремумы 2.sm (14 КиБ) скачан 24 раз(а).
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]
Экстремумы 2a.sm (14 КиБ) скачан 33 раз(а).
-
Новые сообщения
-
Нет новых сообщений