![]()  | 
![]() ![]() ![]() ![]()  | 
![]()  | 
The Effect of a Poor Initial GuessBoost , Math Toolkit 2.5.0 , Root finding
  
  
   | 
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
                 Начальная догадка =  | 
                 -500% (≈1,323)  | 
                 -100% (≈3.97)  | 
                 -50% (≈3.96)  | 
                 -20% (≈6,35)  | 
                 -10% (≈7.14)  | 
                 -5% (≈7.54)  | 
                 5% (≈8.33)  | 
                 10% (≈8.73)  | 
                 20% (≈9.52)  | 
                 50% (≈11.91)  | 
                 100% (≈15.87)  | 
                 500 (≈47.6)  | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
скобка_и_solve_root  | 
12  | 
8  | 
8  | 
10  | 
11  | 
11  | 
11  | 
11  | 
11  | 
11  | 
7  | 
13  | 
newton_iterate  | 
12  | 
7  | 
7  | 
5  | 
5  | 
4  | 
4  | 
5  | 
5  | 
6  | 
7  | 
9  | 
halley_iterate  | 
7  | 
4  | 
4  | 
3  | 
3  | 
3  | 
3  | 
3  | 
3  | 
4  | 
4  | 
6  | 
schroder_iterate  | 
11  | 
6  | 
6  | 
4  | 
3  | 
3  | 
3  | 
3  | 
4  | 
5  | 
5  | 
8  | 
Как вы можете видеть, bracket_and_solve_root относительно нечувствителен к начальному местоположению - до тех пор, пока вы не начнете много порядков от корня, потребуется примерно столько же шагов, чтобы связать корень и решить его. С другой стороны, методы на основе производных медленно запускаются, но как только они исправляют некоторые цифры, они увеличивают точность исключительно быстро: поэтому они довольно чувствительны к начальному месту запуска.
Следующая таблица показывает количество итераций, необходимых для поиска второго радиуса эллипса с первым радиусом 50 и длиной дуги 500:
| 
                 Начальная догадка =  | 
                 -500% (≈20.6)  | 
                 -100% (≈61.81)  | 
                 -50% (≈61.81)  | 
                 -20% (≈98.9)  | 
                 -10% (≈111.3)  | 
                 -5% (≈117.4)  | 
                 5% (≈129.8)  | 
                 10% (≈136)  | 
                 20% (≈148.3)  | 
                 50% (≈185.4)  | 
                 100% (≈247.2)  | 
                 500 (≈741.7)  | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
скобка_и_solve_root  | 
11  | 
5  | 
5  | 
8  | 
8  | 
7  | 
7  | 
8  | 
9  | 
8  | 
6  | 
10  | 
newton_iterate  | 
4  | 
4  | 
4  | 
3  | 
3  | 
3  | 
3  | 
3  | 
3  | 
4  | 
4  | 
4  | 
halley_iterate  | 
4  | 
3  | 
3  | 
3  | 
3  | 
2  | 
2  | 
3  | 
3  | 
3  | 
3  | 
3  | 
schroder_iterate  | 
4  | 
3  | 
3  | 
3  | 
3  | 
2  | 
2  | 
3  | 
3  | 
3  | 
3  | 
3  | 
Интересно, что эта функция гораздо более устойчива к плохой исходной догадке при использовании производных.
Статья The Effect of a Poor Initial Guess раздела Math Toolkit 2.5.0 Root finding может быть полезна для разработчиков на c++ и boost.
:: Главная :: Root finding ::
реклама  |