从函数中检索数值结果

时间:2013-03-27 19:26:51

标签: function evaluate maxima

我正在处理maxima中的代码,并在其中定义了一个函数。

Ucr(y):=offset+c1[21]+2*sum(realpart(c1[m+20])*cos(2*%pi*(m-1)*y/dp) - imagpart(c1[m+20])*sin(2*%pi*(m-1)*y/dp),m,2,nmax+1);

然而,如果我尝试评估Ucr(1)之类的东西,我没有得到答案的数字,我得到一个很长的等式,所有的变量和数字插入。我是maxima的新手,无法弄清楚我怎么能把它煮成一个很好的表达。

我将不胜感激。

最佳, 本

2 个答案:

答案 0 :(得分:0)

您可以为变量赋予数值

kill(nmax, dp, offset, c1);
numerval(nmax, 1);
numerval(dp, 1);
numerval(offset, 1);
/* fill a list with dummy values */
c1: makelist(1/m+m*%i, m, 1, ev(nmax, numer)+22);
Ucr(y):=offset+c1[21]+2*sum(realpart(c1[m+20])*cos(2*%pi*(m-1)*y/dp) - imagpart(c1[m+20])*sin(2*%pi*(m-1)*y/dp),m,2,nmax+1);

ev(Ucr(1), numer);

或者只是在末尾粘合数值

kill(nmax, dp, offset, c1);
Ucr(y):=offset+c1[21]+2*sum(realpart(c1[m+20])*cos(2*%pi*(m-1)*y/dp) - imagpart(c1[m+20])*sin(2*%pi*(m-1)*y/dp),m,2,nmax+1);
env: [dp=1, offset=1, nmax=1, c1=makelist(1/m+m*%i, m, 1, 23)];
ev(Ucr(1), env);

答案 1 :(得分:0)

尝试在您的函数体周围包裹float(trigreduce(rectform( ... )))