2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Решение системы нелинейных уравнений методом Ньютона
Сообщение23.02.2013, 21:03 
Нужно решить такую систему :
$\begin{equation}\label{eq:syst}
\left\{
\begin{array}{rcl}
x^2+y^2&=&1\\
\sin(x+y)-1.122x&=&0.498\\
\end{array}
\right.
\end{equation}$

C методом я разобрался, алгоритм написал на С++, но проблема в том, что система имеет две пары решений, а прога всегда находит только то, что справа, хотя начальные X и Y я ввожу приблизительными ко второму корню (например -0,9 и 0,4 ).
Это недостаток метода, что он всегда сходится к одному и тому же корню ? (и почему так ?)
Можно как-то это исправить? Помогите пожалуйста.
Вот график системы :
http://www4b.wolframalpha.com/Calculate/MSP/MSP53391a589a7h110f45if000027d62689b25918e4?MSPStoreType=image/gif&s=63&w=478&h=267&cdf=RangeControl

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение23.02.2013, 21:24 
Аватара пользователя

(Оффтоп)

Вспомнил анекдот на на тему преферанса. В конце такая фраза: "Расклад, батенька, расклад!"

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение23.02.2013, 21:24 
madara в сообщении #687422 писал(а):
Вот график системы :
http://www4b.wolframalpha.com/Calculate ... ngeControl

Цитата:
Sorry, this page does not exist on the Wolfram|Alpha site.

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение23.02.2013, 22:16 
Изображение

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение23.02.2013, 22:46 
Для решения таких систем существует метод Драгилева.Он хорош тем, что сразу отделяет корни.
У вас система простенькая-всего два корня, а если бы было 20?.
Так вот, метод Драгилева укажет все двадцать корней.
Например, эта система имеет 24 корня и метод все корни находит.
$\sin (5x^{^{2}})+\sin (4y^{^{2}})=0      


x^{2}+y^{2}+xy-2,5=0$

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение24.02.2013, 00:01 
Оно то так, просто задача сделать именно методом ньютона

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение24.02.2013, 00:45 
madara в сообщении #687439 писал(а):
Изображение

Замечательно. Минус ноль-девять и плюс ноль-четыре должны Вас, в принципе, выбрасывать в нужное решение.

Что может этому воспрепяствовать?...

1). Тупо ошибка в программе.

2). Слишком грубое начальное приближение. Начальное приближение хорошо, если в его окрестности обе кривые примерно линейны. А у Вас это не совсем так: и окружность в окрестности решения близка к вертикальности, и другая кривая близка к горизонтальности. Тут уж при при неудачной начальной точке может выбросить, в принципе, куда угодно (и даже чёрт-те куда).

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

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение24.02.2013, 01:22 
Ну в программе ошибки нет, а вот этого не знал, спасибо, щас попробую чтото сделать.
ewert в сообщении #687471 писал(а):
Начальное приближение хорошо, если в его окрестности обе кривые примерно линейны.


-- 24.02.2013, 02:52 --

Ввожу различные начальные точки. Выдает или второй корень или
ewert в сообщении #687471 писал(а):
может выбросить, в принципе, куда угодно (и даже чёрт-те куда).

Скажем -0,5 и 0,5 приводит ко второму корню, хотя по всей логике должно приводить к первому.
А очень точное приближение, например -0,936 и 0,352 выбрасывает в бесконечность, хотя опять же по всей логике должно приводить к первому корню.
В коде ошибки вроде нет, я проверял несколько раз (кроме того второй корень выводит, а значит работает )

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение24.02.2013, 02:58 
madara в сообщении #687479 писал(а):
А очень точное приближение, например -0,936 и 0,352 выбрасывает в бесконечность,

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

 
 
 
 Re: Решение системы нелинейных уравнений методом Ньютона
Сообщение24.02.2013, 11:58 
ewert в сообщении #687494 писал(а):
madara в сообщении #687479 писал(а):
А очень точное приближение, например -0,936 и 0,352 выбрасывает в бесконечность,

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

Действительно ошибка была в программе, не правельно ставило знак перед одним из элементов обратной матрицы Якоби.
Большое спасибо.

 
 
 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group