Hello, I'm a newbie who is trying to write a function that accepts a function in its argument list. Unfortunately, I'm failing, so: /* Function to perform the numerical integration */ quad(order,func):= block([sum, x, w], sum:0, for i:0 thru order-1 do ( x : legendre_root(order,i), w : gauss_legendre_weight(order,i), sum : sum + (w * func(x))), return(sum) )$ Ai11(xi):=phi1(xi)*V1*diff(phi1(xi)*A(xi,t),xi); A11q:quad(4,lambda([xi],Ai11(xi))); (%i336) A11q : quad(4, LAMBDA([XI], Ai11(XI))) Non-variable 2nd argument to DIFF: ERREXP1 I can see what the problem is, but I have no idea about how to fix it. Any clues? (Full script attached.) Regards, Angus
Attached file: trial.mac