Как решить уравнение y = x^a в R, чтобы получить оптимизирующее значение для 'a'. Здесь y и x - матрица (n x 1), а «a» - неизвестный параметр. Как это решить в R ??Как решить нелинейное уравнение в R
ответ
Это довольно легко с помощью функции цифровой нелинейной минимизации nlm()
. Вы определяете функцию потерь, которая должна быть минимизирована. В вашем примере, например,
Это простая функция потери квадратов квадратов. Вы должны округлить разницу между y
и x^a
, в противном случае минимальным будет -Inf
.
Теперь вы можете просто использовать nlm()
найти минимум:
x <- runif(1000)
y <- x^(0.8) + rnorm(1000,0,0.1)
nlm(f, p=1)
дает:
$minimum
[1] 0.01004981
$estimate
[1] 0.8033611
$gradient
[1] 6.322894e-08
$code
[1] 1
$iterations
[1] 6
Таким образом, оценка именно то, что вы могли бы подумать.
Других возможности включают optimize()
для одномерных фитинга, но для этого вы должны указать интервал, в котором для поиска:
> optimize(f, interval =c(-100,100))
$minimum
[1] 0.8033645
$objective
[1] 0.01004981
Более общий подход будет использовать функцию optim()
, которая позволяет вам свести к минимуму по нескольким параметрам:
> optim(0, f)
$par
[1] 0.8035156
$value
[1] 0.01004981
...
Обратите внимание, что это приведет к предупреждению. Эта функция не оптимизирована для одномерной оптимизации. Вы можете указать method = "Brent
, но тогда вам нужно установить нижний и верхний пределы.
Так много возможностей в R для этого :)
Спасибо @Joris Meys за ваши ценные предложения, и я попробую эти вещи в R. –
- 1. Как решить нелинейное уравнение с помощью R
- 2. Как решить нелинейное математическое уравнение в Matlab?
- 3. Как решить нелинейное уравнение с использованием пакета nleqslv в R?
- 4. Решить нелинейное уравнение в Python/SageMath
- 5. Решить нелинейное уравнение при различном значении параметра
- 6. Нелинейное уравнение MATLAB
- 7. решающее нелинейное уравнение в октаве
- 8. Нарисуйте нелинейное уравнение
- 9. Matlab: Нелинейное уравнение Оптимизация
- 10. Как я могу решить нелинейное уравнение с двумя элементами fsolve?
- 11. Как построить нелинейное уравнение в MATLAB?
- 12. Забивание массива в нелинейное уравнение
- 13. Решить сильно нелинейное уравнение для й в Python
- 14. Решая два нелинейное уравнение с двумя неизвестными с помощью R
- 15. Решая символическое, нелинейное уравнение в Matlab/октава
- 16. Как построить нелинейное уравнение в MATLAB
- 17. Решение colebrook (нелинейное) уравнение в python
- 18. Оптимальное нелинейное уравнение в коде matlab
- 19. Нелинейное уравнение Питона с оценкой лагранжевых множителей
- 20. Решение простое нелинейное уравнение в Matlab
- 21. решить сложное уравнение в числе R
- 22. Можно ли решить алгебраическое уравнение в R?
- 23. Как решить это уравнение?
- 24. Определить и решить вложенное нелинейное ОДУ в MATLAB
- 25. Решить уравнение в PHP
- 26. Как решить нелинейное уравнение с Python с тремя неизвестными и сотнями решений?
- 27. как решить условное уравнение прошивки
- 28. Решить уравнение с экспоненциальным членом
- 29. Как решить уравнение с суммированием?
- 30. Mathematica FindRoot решить уравнение
Вы хотите поместиться? Самый простой способ - взять 'log' для каждой стороны и получить' log (y) = a * log (x) '. Таким образом, «наилучший» 'a' будет найден как' lm (log (y) ~ log (x) - 1) '. –