我有dddft <- function(t) {D(D(D(expression((t^3) / (sqrt(1-t^2))), "t"), "t"), "t")}
我想找到三阶导数然后在 t = 0处找到值。我想在R中这样做。我试过了
dddft(0)
然后我尝试
#include <iostream>
#include <string>
using namespace std;
int main ()
{
// local variable declaration:
int a;
cout<<"masukkan operasi = "; cin >> a;
int angka1;
cout<<"masukkan angka = ";cin >> angka1;
int angka2;
cout<<"masukkan angka = ";cin >> angka2;
if( a == + )
{
cout <<"Hasil = " << angka1+angka2 <<endl ; //hasil
}
else if( a == * )
{
cout <<"Hasil = " << angka1*angka2 <<endl ;
}
}
但这样做只会给我一个很长的表达,而不是 t = 0。
我做错了什么?
答案 0 :(得分:1)
使用可以运行的eval()
评估表达式。
dddft <- function(t) eval(D(D(D(expression((t^3) / (sqrt(1-t^2))), "t"), "t"), "t"))
dddft(0)
# [1] 6
为避免痛苦的嵌套,您可以使用此功能(请参阅?D
):
DD <- function(expr, name, order = 1) {
if(order < 1) stop("'order' must be >= 1")
if(order == 1) D(expr, name)
else DD(D(expr, name), name, order - 1)
}
dddft <- function(x) eval(DD(expression(x^3 / sqrt(1 - x^2)), "x", 3))
dddft(0)
# [1] 6