выпуски newton.method - PullRequest
       5

выпуски newton.method

0 голосов
/ 29 июля 2010

Этот метод не работает в R? Я использую его, чтобы найти корни следующей функции: f (x) = 2,5 * exp (-0,5 * (2 * 0,045 - x)) + 2,5 * exp (-0,045) + 2,5 * exp (-1,5 * x) - 100

Он дает ответ -38,4762403, который даже не близок (f (x) = 2,903809e + 25 для x = -38,4762403). Ответ должен быть около 0,01-0,1. Эта функция должна сходиться ..

Даже для такой простой функции, как f (x) = exp (-x) * x, она дает ответ как 8.89210984, для которого f (x) = 0.001222392, и я устанавливаю допуск на 10 ^ -12 ..

Кроме того, существует ли неграфическая версия метода Ньютона? Я посмотрел на nleqslv, но понятия не имею, как его использовать ..

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 29 июля 2010

R имеет несколько корневых искателей, таких как uniroot и polyroot.Для более сложных задач вы можете использовать функции оптимизации, такие как optim, optimize или nlminb.Вот пример решения этой проблемы с uniroot.

## define the function
f <- function(x){                                                                                                                                            
  2.5*exp(-0.5*(2*0.045 - x)) + 2.5*exp(-0.045) + 2.5*exp(-1.5*x) - 100                                                                                      
}                                                                                                                                                            

## plot the function 
y <- seq(-20,20,0.1) 
plot(y,f(y),ylim = c(-100,100),xlim=c(-20,20))

## find the roots
uniroot(f,c(-5,0))
uniroot(f,c(0,10))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...