2014-01-13 2 views
3

я следующие функции:Решая функции в R

2.3366*x^1+(-3.2684)*x^2+3.6513*x^3+(-2.2608)*x^5+2.1501*x^13+(-2.7412)*x^21+1.8876*x^34 = 0.8232711 

мне нужно решить х.

В MATLAB Я хотел бы использовать следующее:

fsolve(function1=15/18.22,x) 

Как это сделать в R? Могу ли я использовать решение или uniroot или что-то еще?

+0

Попробуйте функцию 'optim'. – Fernando

+1

'fsolve {pracma}' - [Решить систему нелинейных уравнений] (http://www.inside-r.org/packages/cran/pracma/docs/fsolve) – zx8754

ответ

2

Спасибо за ответы. Выяснил это сам.

f1<-function(z) {(2.3366*z^1+(-3.2684)*z^2+3.6513*z^3+(-2.2608)*z^5+2.1501*z^13+(-2.7412)*z^21+1.8876*z^34)-0.8232711} 
Z <- uniroot(f1,c(0,1)) 
Z1 <-Z$root 
Z1 
8

Использование polyroot:

xx = c(-0.8232711,2.3366,-3.2684,3.6513,0,-2.2608,rep(0,13-6), 
    2.1501,rep(0,21-14),-2.7412,rep(0,34-22),1.8876) 
polyroot(xx) 

round(polyroot(xx),2) 
[1] 0.58+0.00i 0.12+0.63i 0.12-0.63i 0.83-0.21i 0.21+1.02i -0.97+0.35i -0.18-0.99i 0.97-0.06i 
[9] 0.60+0.81i -1.03+0.00i 0.21-1.02i 0.83+0.21i -0.18+0.99i -1.03-0.23i 0.05-1.02i 0.97+0.06i 
[17] 0.05+1.02i -1.03+0.23i 0.60-0.81i 0.75+0.63i -0.58+0.85i -0.76-0.74i 0.75-0.63i 0.52+0.88i 
[25] -0.87+0.60i -0.58-0.85i 0.95-0.48i -0.40+1.01i -0.40-1.01i 0.95+0.48i -0.76+0.74i -0.97-0.35i 
[33] 0.52-0.88i -0.87-0.60i 

Вы можете проверить, что у вас есть право Полином с помощью этого:

library(polynom) 
as.polynomial(xx) 
-0.8232711 + 2.3366*x - 3.2684*x^2 + 3.6513*x^3 - 2.2608*x^5 + 2.1501*x^13 - 2.7412*x^21 + 
1.8876*x^34 
+2

Спасибо за ответы. Выяснил это сам. f1 <-функция (z) {(2.3366 * z^1 + (- 3.2684) * z^2 + 3.6513 * z^3 + (- 2.2608) * z^5 + 2.1501 * z^13 + (- 2.7412)) * z^21 + 1.8876 * z^34) -0.8232711} Z <- uniroot (f1, c (0,1)) Z1 <-Z $ корень Z1 – user3190577

+2

@ user3190577 Вы должны поместить свой комментарий в качестве ответа и принять его. Мы настоятельно рекомендуем ответить на ваши вопросы в SO. – agstudy

+2

@ user3190577 Обратите внимание, что решение agstudy обеспечивает все корни, тогда как ваш ответ будет давать только один корень для функции. – Dason

Смежные вопросы