Как выразить результат через e в R

Итак, я относительно новичок в R и хотел знать, есть ли способ получить результат, выраженный в терминах exp(x). Например: у меня есть следующий код:

library(calculus)

f <- function(x, y) 2*exp(5*x+1*y)
taylor(f, var = c(x = 3, y = 6), order = 2)

Теперь результат этого выглядит примерно так:

$f
'(2637631468.96643) * 1 + (2637631469.04) * (y-6)^1 + (13188157344.5581) * (x-3)^1 + (1318815733.78693) * (y-6)^2 + (32970392681.9538) * (x-3)^2 + (13188156507.7521) * (x-3)^1*(y-6)^1'

Есть ли способ получить результат в виде:

(294e30) * (x - 3) + (35e30) * y + ...

, т. е. через e (Эйлера)?


person Flash1232    schedule 12.05.2021    source источник


Ответы (1)


Вы можете сделать следующее:

library(calculus)

f <- function(x, y) 2*exp(5*x+1*y)
tlr <- taylor(f, var = c(x = 3, y = 6), order = 2)
trms <- tlr$terms
trms$coef <- signif(trms$coef, digits = 3)
temp <- paste(formatC(trms$coef), '*', trms$var)
tlr$terms <- trms
tlr$f <- paste(temp, collapse = " + ")
tlr
person Recap_Hessian    schedule 12.05.2021
comment
Хотя я ценю ваш конструктивный ответ, это не то, чего я хочу. Я говорю о базе Эйлера, а не о научной нотации (е+ххх). Вы также можете заменить его на Пи. Тогда вы получите 14π^30 или что-то в этом роде... - person Flash1232; 12.05.2021
comment
@ Flash1232 Не уверен, что понимаю. e является exp(1) Эйлера. Вы также хотите иметь его в любой пользовательской основе, такой как $\pi$? - person Recap_Hessian; 12.05.2021
comment
Используя python, вы получаете желаемый результат, используя функцию sympy series().removeO(). Он выведет полностью факторизованный и простой термин, в котором нет десятичных знаков. Он выражает термин в терминах e^x вместо необработанных значений. - person Flash1232; 12.05.2021
comment
@ Flash1232 Я не знаю об этом, но причина, по которой это здесь более уместно, заключается в том, что мы контролируем количество значащих цифр. Желаемое представление выглядит красиво, но может не совпадать с разными терминами. - person Recap_Hessian; 12.05.2021