MATLAB和C++数据交类实例---求任意函数y=f(x)的n阶导数,并计算在x=x0处的值

void test2()//计算倒数 { CMatlabEngine eng; eng.OpenEngine(); char tmp[200];//表达式 char tmp1[200]; mxWrap df;//导数表达式 mxWrap val;//原函数值 mxWrap dfval;//导数值 xDouble vx0;//x0 输入 double x0=0; int n=1;//导数阶数 strcpy(tmp,"syms x;"); eng.EvalString(tmp); cout<<"输入表达式:"; cin>>tmp; cout<<"输入导数阶数:"; cin>>n; cout<<"输入x0:"; cin>>x0; vx0.SetRealData(x0); while( tmp[0] != 'q' ) { eng.PutVar("x0",vx0.GetArray());//input x0 //get express sprintf(tmp1,"%s;z1=char(diff(y,%d)),z=char(z1),val=subs(y,x,x0),dfval=subs(z,x,x0)",tmp,n); //cal eng.EvalString(tmp1); //get val eng.GetVar("z",&df);//n阶导数表达式 eng.GetVar("val",&val);//原函数在x0处的数值 eng.GetVar("dfval",&dfval);//n阶导数在x0处的数值 // cout<<"---------------------------matlab output----------------/n"; // cout<

你可能感兴趣的:(matlab,c++)