/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.7 ] */ /* [wxMaxima: input start ] */ kill(all); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] integro in forma esatta un generico polinomio di grado 3, dopo averlo definito [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ poli(pluto) := a*pluto^3 + b*pluto^2 + c*pluto + d; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ INTpoli : integrate(poli(xi),xi,-1,1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] ricavo l'integrale esatto [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ INTpoli : fullratsimp ( INTpoli ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] pongo l'integrale esatto uguale alla stima per campionamento a due punti [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ residuo : INTpoli - ( w1*poli(xi1) + w2*poli(xi2) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] imposto un sistema di equazioni *NON*lineari per ricavare le incognite w1,w2,xi1,xi2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ eqs : [ diff(residuo, a)=0, diff(residuo, b)=0, diff(residuo, c)=0, diff(residuo, d)=0 ]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] risolvo il sistema di equazioni NONlineari [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sols : solve( eqs , [w1,w2,xi1,xi2] ) ; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sols[1]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sols[2]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] definisco le incognite sulla base di una delle due soluzioni [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ w1 : ev( w1,sols[1]); w2 : ev( w2,sols[1]); xi1 : ev(xi1,sols[1]); xi2 : ev(xi2,sols[1]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] controllo che tali coefficienti, oltre a rendere il residuo costante in a,b,c,d, lo rendano anche nullo [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ev( residuo ); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fullratsimp(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] mappatura x(xi) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ x(xi) := a*xi+b; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ linsolve([ x(-1)=0 , x(1)=%pi ] , [a,b] ), globalsolve=true; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ x(xi); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] forma errata, ** mi sono dimenticato dx(xi)/dxi ** x=x(xi) e NON x=xi VV ERRATA!! VV [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ quadgauss : w1 * sin(xi1) + w2 * sin(xi2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] ^^ ERRATA!! ^^ [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] forma corretta, calcolo dx(xi)/dxi [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define( dxdxi(xi), diff(x(xi),xi) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] forma corretta integrando: sin(x(xi)) * dxdxi(xi) controllo: (1.5*x(xi)^3-2*x(xi)^2+%pi*x(xi)-4.3)* dxdxi(xi) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] definisco l'integrando come funzione di xi [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define( integrando(xi) , sin(x(xi)) * dxdxi(xi) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ quadgauss : w1 * integrando(xi1) + w2 * integrando(xi2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ esatto: integrate(integrando(xi),xi,-1,1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fullratsimp(quadgauss-esatto); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ [ esatto, quadgauss, (esatto-quadgauss)/esatto ] ,numer; /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$