Производная функции
Я использую D для получения производных от функции. Однако R не упрощает выражение при возвращении производной. Мне нужно выяснить, имеет ли функция производную, которая может быть выражена в целом. Есть ли какой-нибудь способ в R, чтобы упростить выражение?
> D(expression(sqrt(1 - x^2)), 'x')
-(0.5 * (2 * x * (1 - x^2)^-0.5))
> D(D(expression(sqrt(1 - x^2)), 'x'), 'x')
-(0.5 * (2 * (1 - x^2)^-0.5 - 2 * x * (-0.5 * (2 * x * (1 - x^2)^-1.5))))
Во-вторых, существует ли способ в R для численного интегрирования?
Ответы
Ответ 1
library(Ryacas)
x <- Sym("x")
Simplify(deriv(sqrt(1 - x^2),x,2)) # return the result simplified
дает
expression((x^2 - 1 - x^2)/root(1 - x^2, 2)^3)
Вы также можете попробовать
PrettyForm(Simplify(deriv(sqrt(1 - x^2),x,2)))
который дает
2 2
x - 1 - x
---------------
3
/ 2 \
Sqrt\ 1 - x /
Что касается численного интегрирования, попробуйте дать это, чтобы увидеть, что доступно
library(sos)
findFn('{numerical+integration}')
Ответ 2
Насколько я знаю, R не упростит результат D()
. Похоже, вы хотите иметь правильную систему компьютерной алгебры, и R определенно не является полным CAS. Mathematica и Maple - но существует также ряд альтернатив с открытым исходным кодом (как описано в этом сообщении SO).
R может выполнять численное интегрирование - для такого рода вопросов стоит сначала искать в справочных страницах R (т.е. help.search('integrate')
). Вы можете использовать integrate()
в пакете stats
. Существует также area()
в пакете MASS
, но это намного проще (например, для демонстрационных целей).
Ответ 3
Возможно, вы захотите проверить Octave... Это бесплатно и afaik Math людям нравится.
EDIT: @mbq, я не настолько уверен... это то, что я тоже думал. В принципе, это бесплатно, возможно, сможет делать то, что он хочет - почему бы не попробовать. Существует несколько доказательств, которые, по моему мнению, были не такими уж плохими. Конечно, также возможно, что я ничего не понял:)