TVIACS Ceci repr sente le logiciel associ au cours d'Informatique Appliqu au Calcul Scientifique du C.N.A.M. Centre du Pays de Gex par Pierre BETTEVAUX pendant l'ann e universitaire 1992/93 et remercie son auditoire pour l'enthousiasme qu'il a manifest pendant son cours. Ce logiciel est utilisable apres r glement de la licence dont le prix est fix 150 FRS ou 40 FS (Pensez au travail fourni par l'auteur...) (Disquette 3.5 HD + envoi Distingo ou recommand compris) Il contient des programmes d'Analyse Num rique El mentaire Bibliographie: I.A.C.S. JH Sa ac Edition Dunod Informatique Numerical Methods JH Mathews Prentice International Editions Le syst me de menus utilise abondamment celui de l'interface Turbo Vision du compilateur Turbo Pascal version 6.0 ou plus La touche active la barre des menus Les menus s'ouvrent par frappe d'une combinaison et lettre surbrillance,ou d placement par touches Fl ches et Par exemple, le menu Integration s'ouvre avec Alt-I Equa Diff Alt-E L'utilisation du logiciel est plus pratique en utilisant une souris et par cliquage GAUCHE exclusivement! sur un point du sous-menu s ctionn et d placement possible comme plus haut la selection ouvre une autre fen tre affichant d'autres options. L'aide contextuelle (touche F1) vous indique le code source Pascal du programme correspondant la m thode num rique utilis La touche situ gauche permet un retour au menu pr Pressez ou cliquez pour retourner au Menu; Frappez Esc pour refermer l' cran d'aide g e par la touche F1. Ce logiciel utilise une librairie (analyseur syntaxique) permettant de reconna tre des cha nes de caract res qui sont des critures correctes de fonctions,puis ensuite de les valuer lorsque les valeurs des variables ont es. J Les cha nes utilisables sont des expressions form es avec les op rateurs L +,-,*,/,(Le signe ^ d signe l'Exponentiation), les 26 lettres de l'alphabet minuscules ou Majuscules pour d signer 26 variables possibles. Les expressions peuvent crites avec des majuscules ou des minuscules en intercalant des blancs. Cette librairie permet aussi d' crire des d es formelles partir de fonctions entr es pr cedemment (voir par exemple,la m thode de Newton) Les fonctions admises sont: - ABS: Valeur absolue COS,SIN,TG,CH,SH,TH: Cos,sin,tg trigonom triques et hyperboliques ACH,ASH,ATH: Arg cos hyper,arg sin hyper,arg tg hyperbolique ACOS,ASIN,ATAN: Arc cos,arc sinus,arc tg EXP,LN: Exponentielle,Log Neperien SQR,SQRT: Carr ,Racine Carr FRAC: Partie Fractionnaire INT: Partie Enti L'Argument d'une Fonction mentaire doit tre entre parenth Un autre logiciel shareware appel TVMG associ au cours de Math matiques rales du C.N.A.M. que j'ai enseign au Centre du Pays de Gex a velopp Il contient des programmes de Math matiques G rales pouvant interesser: -les auditeurs du Conservatoire National des Arts et M tiers pour l'unit de valeur du D.P.C.T. Maths G rales A1 ou A2 -les ves de Classes Pr paratoires des Lyc -les tudiants du Premier Cycle Universitaire (DEUG,IUT,BTS,..) Th mes trait s par le logiciel: - D rivation symbolique - Int gration Num rique (Simpson) - D veloppement de Taylor ou Mac Laurin - Polynome:Somme,produit, valuation ponctuelle,d e,PGCD, division euclidienne - Analyse Combinatoire - Equation diff rentielle ordre 1: M thode d'Euler - Calcul Matriciel(Produit,d terminant,Polynome caract ristique,Gauss,..), La licence a 150 FF (disquette 3.5 HD +envoi recommand compris) Pour tout renseignement compl mentaire , crire Pierre BETTEVAUX PBI 74580 Viry Integration Contient les m thodes d'interpolation et d'int gration usuelles Trapezes Simpson Horner Lagrange Boole Integration Horner Algorithme Pascal de la m thode d'H rner: Procedure HornerProc; Var A,B:TAB; (* Tableau des coefficients des polyn mes initial et d'Horner *) P0, (* valeur polyn me au point x *) x:Real; N,i:Integer; Begin End; (* HornerProc *) Integration Lagrange (F2) Algorithme Pascal de la m thode de Lagrange: Procedure lagrange; Var X,Y:tab; term,sum:Real; (* xx vite la confusion X tableau X Variable *) i,j:Integer; (* compteurs indices *) N:Integer;(* Degre polynome d'interpolation *) Begin End; Integration Trapezes (F3) Algorithme Pascal de la m thode des Trap Procedure trapeze; Var a,b:Real; n :Integer; (* Bornes d'integration et nombre de subdivisions *) h, (* Pas de subdivision *) x1,x2,s:Real; (* Aire subdivision *) ch:char; Begin 8 Writeln('Methode des trapezes...'); Writeln('==========================================================='); Writeln('Test: f(x)= 1/x a = 1, b= 2 ,result = Ln 2 = 0,69377140318'); Writeln(' pour N = 10 subdivisions'); Writeln('==========================================================='); BigCursor; (* voir le curseur!!! *) fl(ff); (* Entr e fonction cha ne de la librairie de l'auteur *) Writeln; Writeln('Initialisation bornes d''integration...'); Write('Entr e a = ');Readln(a); Write('Entr e b = ');Readln(b); Writeln; Repeat Write('Entree nombre de subdivisions ? ');Readln(n); h:=(b-a)/n; x1:=a;s:=0;x2:=0; While (x2 <= b) do Begin x2:=x1+h; s := s + (h/2)*(f(x1) + f(x2) ); x1:=x2; End; HideCursor;(* Cach le pav du curseur *) Writeln('valeur approch e de l''int grale : ',s,' Erreur: ',s - Ln(2)); Writeln('Other iterations press any key =Retour Menu '); ch:= Readkey; Until (upcase(ch)=#27); End; (* trapeze *) Integration Simpson (F4) Algorithme Pascal de la m thode de Simpson Procedure simpson; Var a,b,n:Integer; (* Bornes d'integration et nombre de subdivisions *) v h, (* Pas de subdivision *) x1,x2,s:Real; (* Aire subdivision *) ch:char; milieu:Real; Begin End; (* simpson *) Integration Boole Villarceau Procedure Boole_Villarceau; Var (* Bornes d'integration et nombre de subdivisions *) a,b,n:Integer; h, (* Pas de subdivision *) x1,x2,s:Real; (* Aire subdivision *) ch:char; omega:TAB_Real; milieu,aux1,aux2,aux3:Real; (* pour all ger la formule.. *) Begin End; (* Boole Villarceau *) Fichier Quitter (Alt-X) La commande Quitter provoque la sortie du programme. Equa. Diff. Contient les diff rentes m thodes de r solution rique d' quations diff rentielles du premier ordre Conditions Initiales Euler PointMil Heune Equa. Diff. Conditions Initiales Saisir les conditions initiales de l' quation diff rentielle T0,TMax,Y0,N Equa. Diff. Euler Normale RK1 (F7) Algorithme Pascal de la m thode d'Euler b Procedure eulernor; (* Yn+1 = Yn + h*f(Tn,Yn) *) Var k:Integer;ro:Real; Begin methode(' Euler'); ! t:=t0;y:=y0;k:=1; Repeat k:=k+1; ro:=yprime(t,y); y:=y+h*ro; t:=t+h; resultats(k);(* gotoxy(co,li+k);Write(y,' ',abs(y-z(t,y)));*) (* Ecrire Y calcul et erreur par rapport la solution exacte z(t,y) *) Until (k>kmax-2); End; Equa. Diff. Point Milieu RK2 (F8) Algorithme Pascal de la m thode du Point milieu U Procedure pointmil; Yn+1 = Yn + h*f(Tn+h/2,Yn+h/2*f(Tn,Yn)) Var p,q,ro:Real; Begin End; Equa. Diff. Heune RK2 Procedure heune; (* Yn+1=Yn+h/2*(f(tn,yn)+f(Tn+1,Yn+h*f(Tn+1,Yn+h*f(Tn,Yn)) *) Var q,ro:Real; Begin End; Equa. Diff. Runge-Kutta RK4 Algorithme Pascal de la m thode Runge-Kutta d'ordre 4 Procedure rk4; Var k1,k2,k3,k4,z1,z2,z3,z4,ro:Real; Begin End;(*Rk4*) thodes It ratives Contient les diff rentes m thodes de r solution d' quation du type f(x)=0 ! PointFixe Newton Dichotomie rations Point Fixe (F9) Procedure point_fixe; Var gprime,xinit:Real; nmax:Integer; Begin Clrscr; Writeln('M thode du point fixe'); Writeln(' Tests:'); Writeln(' x0 f(x)=0 Valeur Approch Writeln(' 2.3 f(x)=atan(x)-x/2 2.33112237'); Writeln('1.9 et 3.8 f(x)= -4+3x-x*x/2'); Writeln('1.9 et -1.9 g(x)=0.4+x-0.1x*x'); Writeln(' 1.0 exp(x)-2-x '); Writeln(' -2.4 exp(x)-2-x '); Writeln(' [0.8,1.6] cos(x)+1-x '); Writeln; Repeat fl(ff); (* Entr e f(x) del' quation f(x) = 0 *) BigCursor; (* Write('Nombre iterations = ');Readln(nmax); *) erreur := 1; Write('start point x0= ');Readln(x0); Write('Precision:');Readln(precision); n:=1;x1:=f(x0);xinit:=x0; HideCursor; While ( erreur > precision ) do Begin x1:=f(x0); erreur := abs(x1-x0); gprime:=abs((x0-x1)/(xinit-x1)); Writeln(n:2,' ',x1:3:10,' erreur: ',erreur:3:10, ' gprime: ',gprime:2:2); x0:=x1; n:= n+1; End; Writeln('Valeur Approch e= ',x1:3:10); Writeln('erreur=',erreur:3:10); Writeln('Autre quation ou =Retour Menu'); ch :=Readkey; Until (upcase(ch)=#27); End; rations Newton Procedure Newton; Begin End; rations Dichotomie Algorithme de la m thode dichotomique Procedure dichotomie; Var a,b,m:Real; Begin End; mes Lin aires Contient Alg bre matricielle et r solution des syst Matrices Gauss Seidel Moindres Syst mes Lin aires bre Matricielle) ALGEBRE MATRICIELLE Procedure TRANSP(a:mat;Var tp:mat); (* Matrice transpos e *) Begin X for i:=1 to n do for j:=1 to n do Begin tp[i,j]:=a[j,i]; End; End; = Procedure PRODMAT(A1,A2:MAT;Var C:MAT); Var sum:Real; Begin for I:=1 to N do Begin for J:=1 to N do Begin sum:=0; for K:=1 to N do sum:=sum+A1[I,K]*A2[K,J]; C[I,J]:=sum; End; End; Writeln; End;(* Prod_mat *) ; Procedure RANG; (*Entr e Rang Matrice *) Begin BigCursor; 8 Writeln('Entr e Rang Matrice ou Vecteur:');Readln(N); End; > Procedure PROD_SCAL(COLO1:vec;COLO2:vec;Var sum:Real); Begin t for i:=1 to N do sum:=0; for i:=1 to n do sum:=sum+COLO1[I]*COLO2[i]; End;(* Prod_Scal *) Syst mes Lin aires Gauss Procedure ENTREEB; (* Entr e Matrice et vecteur syst me *) Begin End;(*Entreeb*) Q Procedure GAUSS; (*Triangularisation par la m thode de GAUSS avec pivot total*) Begin (*Recherche pivot non nul*) End; (*GAUSS*) T Procedure SYSTEME;(*R solution syst me triangulaire par Back Substitution *) Begin End;(*syst me*) Syst mes Lin aires Seidel Procedure GAUSS_SEIDEL; Var Y a:mat; P0,P1,B:vec; niter,count,l:Integer; tolerance,precision,sum:Real; Begin End; (* Gauss_Seidel *) Moindres Carr Droite Procedure ENTREEPOINTS; Begin End;(*Entreepoint*) G Procedure LEAST_SQUARES_LINE; Begin Writeln('Least Squares Line..'); Writeln('exemple IACS page 98'); Writeln('xi: -2 -1 0 +1 +2'); Writeln('yi: +1 +2 +2 +3 +4'); Writeln('R sultat:Y = 0.7 X + 2.4 '); End; (* least_square_line; *)