Последний раз редактировалось Abraziv 19.02.2016, 11:15, всего редактировалось 1 раз.
Доброго времени суток. Пытаюсь решить систему нелинейных уравнений. Система сложная, поэтому приходится решать численно. Локализация корней проходит успешно, а вот с уточнением проблемы. Для уточнения использую метод Ньютона, он даёт быструю сходимость, но проблема в том, что в некоторых случаях метод скидывает к "другому" корню, хотя начальные значения достаточно близки к корню. Вот посмотрите сами (локализация и уточнение 4 корней):
n = 1
x0 = -2654444.169345 y0 = 5709039.636741 z0 = 1020501.920000
x = -2648355.537376 y = 5699006.168078 z = 1090033.593346
n = 2
x0 = -3970610.346250 y0 = 4464471.715573 z0 = -2232347.950000
x = -2648355.537372 y = 5699006.168072 z = 1090033.593386
n = 3
x0 = -4421689.086650 y0 = -4356293.355666 z0 = 1466971.510000
x = 4415257.619603 y = -4347551.147897 z = 1511598.742964
n = 4
x0 = 2156908.467991 y0 = -5236444.958831 z0 = -2933943.020000
x = 4415257.619595 y = -4347551.147887 z = 1511598.743014
Как быть?
Матлаб с помощью функции solve находит все 4 корня:
x = 1.0e+009 * 0.004415257619600 -0.002648355537372 -0.003983383771372 0.002191535847284
y = 1.0e+009 * -0.004347551147893 0.005699006168071 0.004485697900438 -0.005289645268229
z = 1.0e+010 * 0.000151159874298 0.000109003359339 -0.000216605624736 -0.000281024112082
|