Может ли Maple терять корни?

Форум пользователей пакета Maple

Модератор: Admin

fenestra
Сообщения: 15
Зарегистрирован: Чт сен 13, 2007 8:01 am

Может ли Maple терять корни?

Сообщение fenestra » Пн мар 03, 2008 9:17 pm

Здравствуйте. Ситуация такая - есть система двух огромных уравнений, которые решаются численно с помощью функции fsolve.Выдает один корень. Расчет для меня очень важный. У меня возникли сомнения, мне кажется что там должно быть хотя бы два корня. Как проверить я не знаю, вручную не посчитать. Может ли Maple терять корни? Существует, какой-нибудь способ проверки?

AlexxZ2
Сообщения: 138
Зарегистрирован: Вс ноя 05, 2006 9:05 pm

Сообщение AlexxZ2 » Пн мар 03, 2008 10:29 pm

У меня возникли сомнения, мне кажется что там должно быть хотя бы два корня.

А кто вам сказал, что там 2 корня, а не 22? Только аналитическое решение может показать все корни, да и то, если оно правильное. А численным же способом никаких гарантий. Попробуйте задать другие начальные условия, если они задаются. Может метод решения и выдаст другие корни, если они есть. У вас же всего 2 переменные? За одно, не могли бы вы ответить какая у вас версия Maple и есть ли там пакеты по нелинейной оптимизации?

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Вт мар 04, 2008 1:37 am

AlexxZ2 писал(а):
У меня возникли сомнения, мне кажется что там должно быть хотя бы два корня.

А кто вам сказал, что там 2 корня, а не 22? Только аналитическое решение может показать все корни, да и то, если оно правильное. А численным же способом никаких гарантий. Попробуйте задать другие начальные условия, если они задаются. Может метод решения и выдаст другие корни, если они есть. У вас же всего 2 переменные? За одно, не могли бы вы ответить какая у вас версия Maple и есть ли там пакеты по нелинейной оптимизации?

Сказать, что, например, Maple10 теряет корни – ничего не сказать. В теме F(x)=0 на форуме “общие вопросы математики” как раз приведён пример. Вот, имеется возможность подтвердить на практике ценность подобного рода советов. И причём здесь версии, если реализованы методы из позднего средневековья? Да и по поводу самих численных методов надо бы корректнее высказываться, точнее, конкретнее. Это по поводу гарантий

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: Может ли Maple терять корни?

Сообщение алексей_алексей » Вт мар 04, 2008 1:08 pm

fenestra писал(а):Здравствуйте. Ситуация такая - есть система двух огромных уравнений, которые решаются численно с помощью функции fsolve.Выдает один корень. Расчет для меня очень важный. У меня возникли сомнения, мне кажется что там должно быть хотя бы два корня. Как проверить я не знаю, вручную не посчитать. Может ли Maple терять корни? Существует, какой-нибудь способ проверки?

Да, а то получается, не совсем по теме моё последнее сообщение. Имеется функция implicitplot, с помощь которой можно построить одновременно два графика Ваших уравнений (задать произведение их левых частей, равное нулю), хотя, это намного удобнее делать с помощью Derive. После чего Вы на графике увидите, какое количество решений у Вашей системы. Там же будут ориентиры относительно начальных приближений. Единственное, что может вызвать небольшое неудобство – это масштабность разброса решений.

AlexxZ2
Сообщения: 138
Зарегистрирован: Вс ноя 05, 2006 9:05 pm

Сообщение AlexxZ2 » Ср мар 05, 2008 12:01 am

Имеется функция implicitplot, с помощь которой можно построить одновременно два графика Ваших уравнений (задать произведение их левых частей, равное нулю), хотя, это намного удобнее делать с помощью Derive. После чего Вы на графике увидите, какое количество решений у Вашей системы. Там же будут ориентиры относительно начальных приближений. Единственное, что может вызвать небольшое неудобство – это масштабность разброса решений.

Вот и дело то как раз в том, что построение графика подойдет только для случая, когда можно ораничить отрезок, где существуют решения. Никакие графики не помогут найти решения когда во множестве решений будут присутствовать величины, например: 1, 2, 10^100, 10^100+2, 10^100+3, 10^50.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Ср мар 05, 2008 9:06 pm

Человек, не показывая своих уравнений, спросил, как ему проверить, имёются ли ещё решения его системы, а графики – это самый простой способ проверки, и тот же Derive позволяет довольно неплохо просматривать области графиков во всевозможнейших масштабах и зонах. Можно было, конечно, предложить ещё способ, если хотя бы одно из уравнений описывает связное множество, или реализовать подход, предложенный для нахождения всех корней полинома на форуме по Маткаду… Но каждое из предложений предполагает уровень корреспондента, немного отличный от уровня пользователя пакета. Сам вопрос, как правило, этот уровень отражает. Пакеты воспринимаются большинством публики, как нечто всезнающее и всеумеющее, хотя, понятно, это просто помощник в рутинной работе. Напомню о примере (по теме вопроса, между прочим), упомянутом в моём сообщении от 4-го марта, так вот, ничего кроме обычного увеличения числа посещений F(x)=0 не вызывает. Это опять по поводу уровня.

Mapler
Сообщения: 28
Зарегистрирован: Пт окт 27, 2006 11:31 pm
Контактная информация:

Сообщение Mapler » Сб мар 15, 2008 1:11 am

Насчет возможностей компьютера и систем компьютерной алгебры совершенно согласен. Ну это же понятно: умного такие инструменты делают умнее, а дурака глупее (это просто кем-то подмеченное наблюдение). Где-то в книжке видел...

По сути. Ваш вопрос относительно корней понятен. Но надо же понимать и тот факт, что от Вас требуется некотрое ощущение того, как искать и где.
Не получается графически, тогда можно сделать так. Я столкнулся с этой проблемой при весьма тривиальном случае: функция fsolve не выдавала полный набор корней для !!!нулей одной лишь функции на фиксированном участке ее определения. У нее есть опция, позволяющая задавать интервал наблюдения. Попробуйте просканировать интересующие области.

Оказалось, что при сужении области поиска точность возрастает, и количество корней становится больше. Кто бы мог подумать.

Такая штука реально с успехом работает в моем пакете, проверена временем. Поэтому я о ней упоминаю.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Сб мар 15, 2008 10:53 am

Mapler писал(а):
Оказалось, что при сужении области поиска точность возрастает, и количество корней становится больше. Кто бы мог подумать.

Такая штука реально с успехом работает в моем пакете, проверена временем. Поэтому я о ней упоминаю.

sin(x)*sin(exp(x)) –y=0;
(x-7)^2+y^2-0.25=0;
О системе, как таковой, речь просто не идёт. Подставив “y” из первого уравнения во второе, решал одно уравнение с одним неизвестным относительно “x”. У меня получилось 610 решений. Мои способности и, видимо, уровень знания пакета не позволили мне даже рассчитывать на такое число решений при использовании Maple10. Это тест, но уже не первый. Ещё мне показалось, что Maple10 не ищет корни многочленов (именно все корни, а не только вещественные).