Ошибка в то время как (tol › 1e-05) { : отсутствующее значение в методе кода Ньютона в R

Я пробую метод Ньютона для нахождения минимума
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

но есть erorr ((Ошибка в то время как (tol > 1e-05) { : отсутствует значение, где требуется TRUE/FALSE Кроме того: Предупреждающее сообщение: В журнале (x): создано NaN))

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


person Sara    schedule 27.10.2018    source источник
comment
Это то же самое. Я получил ошибку.   -  person Sara    schedule 27.10.2018


Ответы (1)


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

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

person Dave2e    schedule 27.10.2018