2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Метод секущих
Сообщение29.05.2016, 13:00 
Заслуженный участник
Аватара пользователя


11/03/08
10092
Москва
Метод хорд и метод секущих это синонимы. И если некоторые авторы предпочитают один термин другому, это не значит, что они описывают разное. Разница в словах означает меньше, чем именование метода Лобачевского-Греффе-Данделена одним именем, так хотя бы национальность автора можно угадать. И если википедики (теперь мои извинения сэру Элтону Джону) приводят различие, то пусть хотя бы дают работающий алгоритм.
Да, ложное положение и regula falsi это то же самое.

 Профиль  
                  
 
 Re: Метод секущих
Сообщение29.05.2016, 13:04 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
DeBill в сообщении #1126905 писал(а):
Если же отказаться от тупого следования формулам, и учитывать знак функции, то такого быстрого сближения итераций не будет
Так мы же когда отказываемся? — когда уже понятно, что функция выпуклой не является ($f(x_1)<0,f(x_3)>0,f(x_2)>0$), и тупой метод всё равно не обещает ни быстрой, ни вообще никакой сходимости. А так есть надежда, что функция вогнутая, и к ней будет применён адекватный вариант метода.

 Профиль  
                  
 
 Re: Метод секущих
Сообщение29.05.2016, 13:12 
Заслуженный участник


11/05/08
32166
Метод секущих (не хорд) -- это фактически конечноразностный вариант метода Ньютона. С вытекающими отсюда последствиями: он, как и Ньютон, сходится сверхлинейно; зато, как и Ньютон, сходится далеко не всегда.

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

 Профиль  
                  
 
 Re: Метод секущих
Сообщение29.05.2016, 14:41 
Заслуженный участник


11/05/08
32166
А, да, прошу прощения, не вчитался. В стартовом посте ровно эта комбинация и описывалась, только не очень удачно. Во-первых, секущей там должна называться лишь вторая секущая, первую же "секущую" в приличном опчестве принято называть всё-таи хордой. Во-вторых, если уж излагать алгоритм аккуратно, то надо бы всё же добавить: если точка пересечения воистину секущей вдруг окажется вне предыдущего интервала локализации, то эту точку следует игнорировать.

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

 Профиль  
                  
 
 Re: Метод секущих
Сообщение30.05.2016, 11:27 
Заслуженный участник


10/01/16
2318
ewert в сообщении #1126940 писал(а):
А, да, прошу прощения, не вчитался.

А, да, я тоже...Почему то решил, что алгоритм у ТС такой же, как в Вики: строятся последовательно точки $b,a,a_1, b_1,...$. Ан нет: по паре $(a,b)$ строится пара $(a_1, b_1)$, что не тоже самое...
Тогда: пересчет для алгоритма ТС на модельном примере (выпуклость - вниз, корень - в точке $c$) дает для логарифма погрешности $\delta _n = \ln (c-a_n)$ асимптотику $\delta _n \sim  - \operatorname{const}\cdot \mu ^n$ с показателем сходимости $\mu = 1 + \sqrt{2} =2.4142...$. Это чуть хуже чем показатель для чистого метода секущих, расчитанного на две итерации: $\gamma ^2 = \frac{3+\sqrt{5}}{2} =2.618...$ . Зато, для выпуклой вниз функции, при условии, что мы не обломались на первом шаге ( $b_1 < b$), сходимость получается.

-- 30.05.2016, 12:48 --

svv в сообщении #1126913 писал(а):
Так мы же когда отказываемся? — когда уже понятно, что функция выпуклой не является


Мне кажется, что, действительно, алгоритм ТС нуждается в модификации, с учетом знака функции в точке $a_1$.Но: вторую хорду (секущую -по ewert) надо проводить именно через две точки, в которых знак один и тот же. Тогда новый отрезок (если нас куда-нибудь не вынесет) будет вложен в старый...

(Оффтоп)

"Не вынесет" здесь означает "новый вложен в старый" :D

 Профиль  
                  
 
 Re: Метод секущих
Сообщение30.05.2016, 14:15 
Заслуженный участник
Аватара пользователя


19/12/10
1546
В справочнике Г.Корн Т.Корн пункт 20.2-2(c), помимо указанной выше формулы метода секущих, содержится следующий текст:
Г.Корн Т.Корн писал(а):
Для отыскания действительных корней действительных уравнений приближение $z^{[j+1]}$ обычно строят по $z^{[j]}$ и $z^{[k]},$ где $k=k(j)<j$ — наибольший индекс, такой, что $f(z^{[k]})$ и $f(z^{[j]})$ имеют разные знаки:$$z^{[j+1]}=z^{[j]}-\frac{z^{[j]}-z^{[k]}}{f(z^{[j]})-f(z^{[k]})}f(z^{[j]})$$

 Профиль  
                  
 
 Re: Метод секущих
Сообщение30.05.2016, 16:45 
Заслуженный участник


10/01/16
2318
whitefox
И для примера Евгений Машеров, метод будет пилить по одной миллионной долго-долго.
Зато надежно, блин...

-- 30.05.2016, 17:49 --

А с другой стороны: а чё делать? Трясти
ewert в сообщении #1126940 писал(а):
сочетание чистого метода хорд (не секущих) с методом половинного деления


?

 Профиль  
                  
 
 Re: Метод секущих
Сообщение30.05.2016, 18:26 
Заслуженный участник
Аватара пользователя


19/12/10
1546
DeBill в сообщении #1127221 писал(а):
А с другой стороны: а чё делать? Трясти
ewert в сообщении #1126940 писал(а):
сочетание чистого метода хорд (не секущих) с методом половинного деления


?
Имхо, чистая бисекция для данного примера сработает лучше.

 Профиль  
                  
 
 Re: Метод секущих
Сообщение30.05.2016, 19:43 
Заслуженный участник
Аватара пользователя


11/03/08
10092
Москва
Мой скромный опыт голосует за смесь линейной интерполяции с бисекцией. И да, чтобы на каждом отрезке корень точно был бы, то есть знаки на концах разные. Бисекция не даёт застрять, а линейная интерполяция при некотором везении даст ответ сразу.

 Профиль  
                  
 
 Re: Метод секущих
Сообщение30.05.2016, 20:16 
Заслуженный участник


11/05/08
32166
Евгений Машеров в сообщении #1126868 писал(а):
И про сходимость. Она для хорд будет всегда, но не всегда быстрая. Пример - функция, в нуле равная миллиону, в единице равная минус единице, и близкая к ломаной, круто спадающей к точке 0,001, в которой принимает значение -,999999, а после неё почти горизонтальная. Бисекция за десять шагов даст ответ, а хорды будут подбираться шажками по миллионной доле. Но на практике подобное редкость.

Бисекция за десять шагов даст, но скверненький -- три цифры, как ей и положено. Если же скрестить бисекцию ну пусть даже и с хордами, то этот мутант первые десять шагов будет делать, да, так же вперевалку. Но зато сразу после них он пойдёт влёт -- сверхлинейно.

-- Пн май 30, 2016 21:24:11 --

whitefox в сообщении #1127168 писал(а):
В справочнике Г.Корн Т.Корн пункт 20.2-2(c), помимо указанной выше формулы метода секущих, содержится следующий текст:
Г.Корн Т.Корн писал(а):
Для отыскания действительных корней действительных уравнений приближение $z^{[j+1]}$ обычно строят по $z^{[j]}$ и $z^{[k]},$ где $k=k(j)<j$ — наибольший индекс, такой, что $f(z^{[k]})$ и $f(z^{[j]})$ имеют разные знаки:$$z^{[j+1]}=z^{[j]}-\frac{z^{[j]}-z^{[k]}}{f(z^{[j]})-f(z^{[k]})}f(z^{[j]})$$

Это выглядит несколько бессмысленно. Вдали от корня никакая аппроксимация метода Ньютона заведомо не даст никакого улучшения. Вблизи же -- чем аппроксимация примитивнее, тем эффективнее.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group