Я пытаюсь оценить производную проекции параметра c кривой. Предположим, что alpha (t) = (X (t), Y (t)) - некоторая плоская кривая. У меня есть функция betaAlpha (X (t), Y (t)), которая проецирует плоскую кривую на единичную сферу. Я пытаюсь найти betaAlpha '(alpha (t))
betaAlpha (X (t), Y (t)) = (betaAlphaPx (X (t), Y (t)), betaAlphaPy (X ( t), Y (t)), betaAlphaPz (X (t), Y (t)))
"alphaNPrimeVe c" - [4,3] матрица выражений, содержащая альфа (t), альфа '(t), альфа' '(t), альфа' '' (t)
в этом примере я устанавливаю X = X (t), Y = Y (t) следующим образом
X<-deparse(alphaNPrimeVec[1,1])
Y<-deparse(alphaNPrimeVec[1,2])
В этом случае X = "выражение (-0,5 + sin (t) * cos (t))" и Y = "выражение (-1 + sin (t))"
I определили betaAlpha с 3 отдельными функциями:
betaAlphaPx <-function(X,Y){
return ((4*X)/X^2+Y^2+4)
}
betaAlphaPy <- function(X,Y){
return (4*Y)/X^2+Y^2+4
}
betaAlphaPz <- function(X,Y){
return ((X^2+Y^2-4)/(X^2+Y^2+4))
}
betaAlphaP <- c(D(eval(betaAlphaPx),'t'),
D(eval(betaAlphaPy),'t'),
D(eval(betaAlphaPz),'t'))
Я получаю сообщение об ошибке "Ошибка в D (eval (betaAlphaPx)," t "): выражение не должно иметь тип 'closure'"
или, если я пытаюсь передать X и Y в виде выражений betaAlphaPx, betaAlphaPy, betaAlphaPz, я получаю ошибку
"Ошибка в 4 * X: не числовой c аргумент для двоичного оператора"
У меня вопрос, как я могу передать выражения X, Y 3 функциям betaAlpha и дифференцировать их по 't'.
Заранее спасибо