Jean-Marc Sac-Epée on Fri, 03 Nov 2000 10:37:24 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Integrating functions |
Thanks to your help, I know now how to integrate a function using intnum0: > #include <math.h> > #include <stdio.h> > #include <pari.h> > > GEN integrate(char *f, char *var, GEN a, GEN b, long prec) > { > entree *ep_var = is_entry(var); > return intnum0(ep_var, a,b, f, 0,prec); > } > > int > main() > { > pari_init(1000000,2); > output(integrate("x^2+3", "x", gzero, gun, DEFAULTPREC)); > return 0; > } Now, I would like to know if it is also possible with more complicated fonctions. For example, it is easy to prove that for each t>0, the polynomial 10*x^5 + 0.1*x^3 - t*x^2 - t has a unique real root. So, we can define the fonction f: t -> this real root. Under gp, it is easy to integrate this function; ? f(t)=real(polroots(10*x^5+0.1*x^3-t*x^2-t)[1]) ? intnum(t=0,1,f(t)) In a C program, I can define this fonction for example with GEN f(GEN t) { const long var = 0; const long prec = 4; GEN pol; pol = cgetg(deg+3,t_POL); pol[1] = evalsigne(1) | evalvarn(var) | evallgef(deg+3); pol[deg+2]=dbltor(10); pol[deg]=dbltor(0.1); pol[deg+1]=pol[deg-2]=gzero; pol[deg-1]=pol[deg-3]=gneg(t); return(greal(roots(pol,prec)[1])); } But now, what is the correct syntax to integrate f? Thank you for your help, J.-M.
begin:vcard n:Sac-Epée;Jean-Marc tel;fax:03 87 31 52 73 tel;work:03 87 54 72 69 x-mozilla-html:FALSE url:http://www.mmas.univ-metz.fr/~jmse org:Université de Metz;Mathématiques adr:;;;;;; version:2.1 email;internet:jmse@poncelet.univ-metz.fr title:Ingénieur de Recherches x-mozilla-cpt:;0 fn:Jean-Marc Sac-Epée end:vcard