Страница 1 из 2

Какими методами решаются задачи более сложного вида

Добавлено: Пт ноя 30, 2012 8:46 pm
rambler87
Какие методы еще существуют для аналитического поиска решения уравнений, неравенств и т.д. содержащих модуль и параметр - без построений графиков. Скажем при автоматизации, программировании если необходимо решить какое-нибудь сложное уравнение, систему уравнений или неравенств какими методами программист может воспользоваться - скорее всего простым перебором с заданным шагом ???
Если рассмотреть довольно простой пример (без схематического графика я этот "простой" пример попытался решить, но запутался уже в случае a > 0)
Это типичный пример - решаемый с помощью схематического графика.
При каких значениях "а" неравенство имеет положительные решения, то есть х>0.
| х + а | + x^2 < 2

Переносим
| х + а | < 2 - x^2
Дальше просто рисуем графики и анализируем.
Изображение
Изображение
Соответственно при небольших дополнительных расчетах получаем, что "а" принадлежит промежутку (-2.25;2)

При решении же аналитически - получаем кучу неравенств и значения корней в форме x=f(a), причем так как уравнение квадратное эти корни постоянно прыгаю то туда то сюда то в минусе, то в плюсе( - Ну в общем это видно из графика (1) сколько тут вариантов пересечения функций |х + а | = 2 - x^2
8 вроде? - решить аналитически, как я понимаю, - это самоубийство(

Так вот как поступают при решении очень сложных уравнений? - Скажем когда есть двойные модули , кубические функции, тригонометрические функции и т.д. Строят функции и методами приближенных вычислений определяют корни и т.д. и т.п.?

Вообщем кто-нибудь пробовал решать это аналитически?

Добавлено: Пт ноя 30, 2012 11:47 pm
Kitonum
Вопрос об алритмизации решения подобных задач интересный и, думаю, непростой! В некоторых системах компьютерной алгебры он в значительной степени решён. Посмотрите как блестяще пакет Mathematica справляется с Вашим предыдущим примером:

Изображение

Найдены все решения в зависимости от параметра a . Видим, кстати, что единственные решения будут только, если a=0 (x=0) и a=1 (x=0).

Как всё это делается я не знаю! Подобные задачи я, как и Вы, обычно решаю геометрически.

Насколько мне известно, в России алгоритмизацией подобных задач занимается Матиясевич и его школа (создатели "универсального математического решателя"). Можете сходить на их сайт

http://www.umsolver.com/russian/mathematics/

и задать интересующий Вас вопрос.

Добавлено: Пт ноя 30, 2012 11:55 pm
rambler87
Спасибо) Решение конечно в математике страшновато - я сам ее только только начал осваивать - посоветовали. И я пока не понимаю как из него получить а - -2.25;2

Могли бы вы начало расшифровать? - что значит v и перевернутое V?
Вообще лучше программы математика нет аналогов как я понимаю пока.

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

И так от себя): в школе была математика, в уверение была математика - я ее вроде бы "знал" очень хорошо. - но только при самостоятельном изучении увидел, что она очень красива и понимание способствует пониманию любого раздела науки вообще))

Добавлено: Сб дек 01, 2012 1:09 am
Kitonum
rambler87 писал(а):Спасибо) Решение конечно в математике страшновато - я сам ее только только начал осваивать - посоветовали. И я пока не понимаю как из него получить а - -2.25;2

Могли бы вы начало расшифровать? - что значит v и перевернутое V?
Вообще лучше программы математика нет аналогов как я понимаю пока...

Ничего страшного нет, ⋀ - это логическое "и", ⋁ - логическое "или". Выписаны все решения уравнения относительно x при любых a по мере возрастания a:
a<0 и (x=0 или x=(a-1)/a), т.е. два решения при любом a<0 и т.д.

В самом деле, Mathematica - это самый мощный матпакет, только он, например, решает уравнения, системы и неравенства с параметрами. Но с точки зрения удобства использования Maple предпочтительнее. Я больше работаю с Maple.

Добавлено: Сб дек 01, 2012 11:55 am
rambler87
Kitonum писал(а):В самом деле, Mathematica - это самый мощный матпакет, только он, например, решает уравнения, системы и неравенства с параметрами. Но с точки зрения удобства использования Maple предпочтительнее. Я больше работаю с Maple.

А вышеприведенное неравенство в какой форме математика его решит?
Кстати ведь ведь уравнения с параметрами можно рассматривать и как поверхность или многомерную поверхность.

По математика наиболее полный самоучитель мне посоветовали beginners guide to Mathematica
А вот по Maple вы бы что фундаментальное посоветовали почитать?

Добавлено: Сб дек 01, 2012 3:07 pm
Markiyan Hirnyk
rambler87 писал(а):А вышеприведенное неравенство в какой форме Математика его решит?
Решение,использующее Mathematica 8.04:
In[1]:= Reduce[Abs[x + a] + x^2 < 2, x, Reals]
Out[1]= (-(9/4) < a <= -Sqrt[2] &&
1/2 - 1/2 Sqrt[9 + 4 a] < x < 1/2 + 1/2 Sqrt[9 + 4 a]) || (-Sqrt[2] < a <= Sqrt[2] &&
1/2 - 1/2 Sqrt[9 + 4 a] < x < -(1/2) + 1/2 Sqrt[9 - 4 a]) || (Sqrt[2] < a < 9/4 && -(1/2) - 1/2 Sqrt[9 - 4 a] < x < -(1/2) + 1/2 Sqrt[9 - 4 a])
Решение, использующее Maple 16.02:
plots:-implicitplot(abs(x+a)+x^2 <= 2, a = -5 .. 5, x = -5 .. 5, numpoints = 10^5, filled = true)
Изображение
m := proc (a) solve(abs(x+a)+x^2 <= 2, x) end proc:
m(1)
RealRange(1/2-(1/2)*sqrt(13), (1/2)*sqrt(5)-1/2)

Добавлено: Сб дек 01, 2012 4:23 pm
rambler87
Необходимо определить только те значения параметра "а" при которых решение заданного неравенства - положительны. То есть как из ответа mathematica вычленить данный промежуток а (-2.25,2)

Какой вопрос, такой ответ

Добавлено: Сб дек 01, 2012 4:27 pm
Markiyan Hirnyk
rambler87 писал(а):А решение в mathematica можно уже подредактировать для автоматического выведения в результат "а" при котором решения неравенства удовлетворяет промежуток с x>0?

Не понял Ваш вопрос, поэтому не могу ответить. Неграмотный текст воспринимается как ненормативная лексика.

Не знаю

Добавлено: Сб дек 01, 2012 4:59 pm
Markiyan Hirnyk
rambler87 писал(а):Необходимо определить только те значения параметра "а", при которых <существует положительное> решение заданного неравенства - положительны. То есть как из ответа Mathematica вычленить данный промежуток а (-2.25,2)?

Не знаю.

Re: Какими методами решаются задачи более сложного вида

Добавлено: Сб дек 01, 2012 7:30 pm
алексей_алексей
rambler87 писал(а):Какие методы еще существуют для аналитического поиска решения уравнений, неравенств и т.д. ...

Решение уравнений в буквенном виде – это только в учебниках и на сайте dxdy. Пишут, на Западе в лотерею выигрывают десятки, если не сотни, миллионов, тогда напрашивается простой вывод: на Западе можно неплохо жить, научившись играть в их лотерею…

Добавлено: Сб дек 01, 2012 7:31 pm
Kitonum
rambler87 писал(а):Необходимо определить только те значения параметра "а" при которых решение заданного неравенства - положительны. То есть как из ответа mathematica вычленить данный промежуток а (-2.25,2)

Ваш вопрос, в самом деле, требует некоторого уточнения. Привожу 2 возможных варианта и решение в Mathematica для каждого из них (Приведённый Вами промежуток соответствует первому варианту):

1) Найти все значения параметра a, для каждого из которых существует x>0 и такой что Abs[x + a] + x^2 < 2 .

Reduce[Exists[x, Abs[x + a] + x^2 < 2, x > 0], a, Reals]

-(9/4) < a < 2

2) Найти все значения параметра a, для каждого из которых верны 2 утверждения: а) существует x>0 и такой что Abs[x + a] + x^2 < 2 и б) x>0 для любого x , для которого Abs[x + a] + x^2 < 2 .

Reduce[ForAll[x, Abs[x + a] + x^2 < 2, x > 0] &&
Exists[x, Abs[x + a] + x^2 < 2, x > 0], a, Reals]


-(9/4) < a <= -2

Полученные результаты можете легко проверить геометрически.

Отвечу сразу на возможный с Вашей стороны вопрос: почему в варианте 2) нельзя ограничиться только условием б)? Дело в том, что в соответствии с законами математической логики импликация A ⟹ B считается верной и тогда, когда A ложно. Поэтому для тех значений параметра a , для которых неравенство Abs[x + a] + x^2 < 2 вообще не имеет решений относительно x , утверждение б) будет истинным и мы получим лишние а .

Пояснение: в синтаксисе Mathematica знак && означает логическое "и" , а знак || это логическое "или"

Добавлено: Сб дек 01, 2012 8:10 pm
Kitonum
rambler87 писал(а):... А вот по Maple вы бы что фундаментальное посоветовали почитать?

Из русскоязычного самое фундаментальное - это книги В.З. Аладьева. Но если Вы начинающий, то читать их Вам будет трудно.

Для новичков более подходят книги:

1) О.А. Сдвижков Математика на компьютере: Maple 8, Солон-пресс, 2003.
2) А. Н. Васильев Maple 8. Самоучитель, М.: Диалектика, Вильямс, 2003.

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

Если Вы более или менее читаете по английски, то нет ничего лучше справочной системы.

К сожалению, с литературой по Maple на английском незнаком.

Добавлено: Сб дек 01, 2012 8:28 pm
rambler87
Спасибо - буду разбираться.
Второй вариант задания для mathematica в нашем случае получается не приводит к получению правильного ответа промежутка "а"? (-2.25;2)

Добавлено: Сб дек 01, 2012 9:50 pm
Kitonum
rambler87 писал(а):Спасибо - буду разбираться.
Второй вариант задания для mathematica в нашем случае получается не приводит к получению правильного ответа промежутка "а"? (-2.25;2)

Что значит правильный ответ?

Правильный ответ даётся на правильный вопрос!

Mathematica всё решила правильно!

Если вопрос поставлен в смысле варианта 2), то Ваш ответ (-2.25; 2) неправилен!

Добавлено: Сб дек 01, 2012 11:31 pm
rambler87
Я просто не совсем понимаю 2 путь задания - он не относится к вышеуказанной задачи и чем-то отличается, но чем я не уяснил еще.