Ошибка в while (tol> 1e-05) {: пропущено значение в коде метода Ньютона в R - PullRequest
0 голосов
/ 27 октября 2018

Я пробую метод Ньютона для нахождения минимума
f (x) = 7x-log (x)

x_0 = 0,01

это мой код:

x<-0.01
tol<-10
count<-0
while(tol>1e-5){
  count<-count+1
  fx<-7*x-log(x)
  fprimex<-7-(1/x)
  xnew<-x-fx/fprimex
  tol<-abs(xnew-x)
  x<-xnew
}
x
tol
count

но есть эрорр ((Ошибка в то время как (tol> 1e-05) {: пропущенное значение, где требуется ИСТИНА / ЛОЖЬ Дополнительно: предупреждающее сообщение: В журнале (х): произведено NaN))

КАК Я МОГУ УСТАНОВИТЬ МОЙ КОД.

1 Ответ

0 голосов
/ 27 октября 2018

Когда x приближается к минимуму, наклон приближается к 0, и следующая оценка делает x <0 и, следовательно, NaN для <code>log(x).

Ваш цикл выше решает f(x)=0, у которого нет реального корня, таким образом, ошибка отмечена выше. Чтобы найти минимум или максимум, найдите, где наклон производной равен 0. Решите fprime(x) = 0, в этом случае минимум составляет 1/7.

...