Master EEA SETIA Travaux Pratiques C++
5 pages

Master EEA SETIA Travaux Pratiques C++

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Niveau: Supérieur, Master, Bac+4
Master 1 EEA/ SETIA Travaux Pratiques C++ TP1 L.Puech, M. Ismail October 2, 2007 1 Composants Logiciels Libres Pour les TP, on se propose d'utiliser l'environnement DevCpp, qui fonctionne sous Windows. Ce logiciel libre utilise 1. le compilateur C/C++ GCC 3.4, lui meme libre. 2. l'interface Windows/GNU : MinGW (Minimimum Gnu for Windows) Vous pouvez donc sans aucune difficulte l'utiliser sur votre propre machine. DevCpp est disponible en ligne a l'adresse suivante: Pour les LINUXiens, le meme compilateur est present sur LINUX, par contre vous utiliserez un autre editeur de C++, et compilerez avec l'aide de commandes en ligne ou de MakeFiles. 2 Prise en main de DevCpp Cette prise en main est facile. DevCpp ”gere” pour vous des ”projets”, qui sont en fait des collections de fichiers ”.c”, ”.h”, ou ”.cpp”. DevCpp vous permet es- sentiellement de naviguer dans ces ”sources”, et d'enregistrer vos modifications, avant de les compiler. Nous vous conseillons de creer un nouveau projet, dans un dossier specifique, sur votre repezrtoire pour chaque seance de TP. Pour ce faire, dans De- vCpp: 1. Nouveau > projet.

  • memoire pour le meme tableau

  • int main

  • vecteur de nbi double

  • nbre de double

  • adresse de malloc vecteur de nbj double

  • zone memoire

  • devcpp

  • nbi


Sujets

Informations

Publié par
Nombre de lectures 26
L2CalculformelTp1:basesete´quationsdunespacevectoriel
1 Premierspas en Maple Toutes les commandes doivent se terminer par un pointvirgule ”;” ou par deux points ”:ce dernier cas, le”. Dans re´sultatnestpasache´. 2+2; 3+3: > 4 Onpeutaecterdesvaleursa`desvariablesenutilisant:=. a:=3+3: > a; > 6 Aud´emarrage,Maplenechargepastoutessesfonctionsenm´emoire.Onalapossibilite´dechargerdenouvelles fonctions avec la commandewith();ediraelveonfautroLuqseilfautuavecMaplnie´iaergle`rblealresilit bibliothe`que(libraryenanglais)linalg: with(linalg); > [BlockDiagonal,GramSchmidt,JordanBlock,LUdecomp,QRdecomp,Wronskian,addcol, addrow,adj,adjoint,angle,augment,backsub,band,basis,bezout,blockmatrix,charmat, charpoly,cholesky,col,coldim,colspace,colspan,companion,concat,cond,copyinto, crossprod,curl,definite,delcols,delrows,det,diag,diverge,dotprod,eigenvals, eigenvalues,eigenvectors,eigenvects,entermatrix,equal,exponential,extend, ffgausselim,fibonacci,forwardsub,frobenius,gausselim,gaussjord,geneqns,genmatrix, grad,hadamard,hermite,hessian,hilbert,htranspose,ihermite,indexfunc,innerprod, intbasis,inverse,ismith,issimilar,iszero,jacobian,jordan,kernel,laplacian,leastsqrs, linsolve,matadd,matrix,minor,minpoly,mulcol,mulrow,multiply,norm,normalize, nullspace,orthog,permanent,pivot,potential,randmatrix,randvector,rank,ratform, row,rowdim,rowspace,rowspan,rref,scalarmul,singularvals,smith,stack,submatrix, subvector,sumbasis,swapcol,swaprow,sylvester,toeplitz,trace,transpose, vandermonde,vecpotent,vectdim,vector,wronskian] Cidessusapparaˆıtlalistedetouteslesfonctionscharg´eesenm´emoire.Vouspouvezavoirunebre`vedescription de chaque fonction en tapant: ?linalg > Chaquefonctionaaussiunepagedaided´etaill´ee,donnantnotammentsasyntaxeetfournissantquelques exemplesrepre´sentatifsenbasdepage.Essayezparexempledecomprendrea`quoiserventlesfonctionsgeneqns etgenmatrix. ?geneqns >
2 L’algorithmede Gauss LalgorithmedeGausspoure´chelonnerlesmatricesestde´j`aprogramm´edanslafonctiongausselim. Voiciun exemple sur une matrice. > A:=matrix([[1, 47, 195, 47, 61], [41, 58, 519, 53, 1], [91, 718, 3509, 83, 389], [19, 50, 333, 53, 85], [49, 78, 31, 72, 99], [85, 86, 30, 80, 72]]);
1
  147 1954761 415358 5191 9183 389718 3509 A:= 1950 33353 85 49 7831 7299  8586 3080 72
gausselim(A); >   147914761 0 8431817 8401244 108870 3306072512 0 0 281 281281 23982127846722 0 00 573 163305 972267503 0 00 0 68348985  0 00 00 Laderni`erelignenaquedesze´ros.Etaitcepre´visible? Arrivezvous`asuivreled´eroulementdelalgorithme? seq(gausselim(A,i),i=1..5); >   147 1954761   147 1954761 0 8433372 8401244 228640 580024 0 18697476 1980 2500 0 00 281 843 0 355914236 4360 5940 3306072512 , , 0 00 0 84312443372 840 281 281 695525694 0 23819524 2375 28900 00   281 843   04081 1660539155113   42565 766505 0 0 281 281 843    147 1954761 147 1954761 0 8433372 8408431244 012443372 840 42565 76650542565 766505 0 0 2810 0 281 281 843281 843 3306072512 695525694 , , 0 00 00 0 281 281281 843 695525694 4087368 0 00 00 00 281 843139       228640 58002428611576 0 00 00 00 281 843139
2
  147 1954761 0 84312443372 840 42565 766505 0 0 281 281 843 695525694 0 00 281 843 4087368 0 00 0 139  0 00 00
3 Unpetit exemple Nousallonsapprendrea`nousservirdecertainesfonctionsdelabiblioth`equelinalgsurunpetitexemple.Ilest fortementconseill´epourchaquefonctionutilis´eedejeteruncoupdoeil`asapagedaide. Onpeutd´enirunespacevectorielparunensembledevecteursge´ne´rateurs:cestlensembledetoutesles combinaisonsline´airesdecesvecteursge´ne´rateurs.Sicesvecteursnesontpasind´ependantsplusieurscombinaisons lin´eairesdonnentlemeˆmer´esultat:l´ecriturenestpasunique.Canestpascommode.Onpre´fe`retravailleravec une base. v1:=randvector(3);v2:=randvector(3);v3:=2*v1 v2; > v1:= [79,56,49] v2:= [63,57,59] v3:= 2v1v2 La fonction basis extrait une base d’un ensemble de vecteurs. basis({v1,v2,v3}); > Attention,lesexpressionsforme´esa`partirdevecteursnesontpasautomatiquementcalcul´ees,ilfautledemander : Error, (in basis) expecting set or list of vectors v3:=evalm(v3); > v3:= [95,55,157] > basis({v1,v2,v3}); {v1,v2} Uneautresolutionconsiste`aconstruirelamatriceayantpourcolonneslesvecteursv1,v2etv3eta`chercher unebasedelespaceengendre´parlescolonnesdecettematrice,cesta`direunebasedelimagedecettematrice. > m:=augment(v1,v2,v3);   79 6395 m:=5556 57  4959 157
> colspace(m);colspan(m);
   596 469 {0,1, ,1,0,} 75 75
{[0,975,7748],[79,56,49]}
3
Onpeutaussichercherquelle(s)´equation(s)satisfaitlesousespaceengendr´eparv1,v2etv3.Pourcelaon´ecrit lesyst`ememX=Y,onletriangulariseetontrouveles´equationssatisfaitesparY.Comprenezvouspourquoi? y:=vector(3);m1:=augment(m,y);gausselim(m1); > y:= array(1..3,[])   8535135y1 m1:=55 97207y2  37 50124y3   8535135y1 20342034 11 0y2y1 17 1717     839 1109 0 00y3y1y2 10170 2034 Lesyst`emed´equationscorrespondant`am1,cest`adirea`mX=Y:    85x135x2135x3=y185x135x2135x3=y1 2034x22034x311y1    55x1+ 97x2207x3=y2meeatsusy`tivquenale´est0x1+=y217 1717 839y11109y2 37x1+ 50x2124x3=y30x1+ 0x2+ 0x3=y3− − 10170 2034 839y11109y2 Lesousespaceengendre´parv1,v2etv3estd´eniparle´quationy3− −= 0. 10170 2034 Onpeutaussisint´eresserauxrelations,cesta`direaux(x1,x2,x3)telsquex1v1+x2v2+x3v3=0.Cestaussi unsousespacevectorieldontonpeutcalculerunebaseoudese´quations:cestlenoyaudelamatricem. > equas:=geneqns(m,x); equas:={79x1+ 63x2+ 95x3= 0,56x1+ 57x2+ 55x3= 0,49x159x2+ 157x3= 0} solve(equas); > {x1=2x2, x3=x2, x2=x2} > geneqns(gausselim(m),x); donnelese´quationsdunoyau(ycompriscertainesinutiles:0=0). 975 975 {79x1+ 63x2+ 95x3= 0,0 = 0, x2x3= 0} 79 79 linsolve(m,[0,0,0]); > donnetouslesvecteursdunoyausousformeparam´etre´e. [2t1,t1,t1] > kernel(m); donne une base du noyau. {[2,1,1]}
4Etmaintenant`avous... Refaiteslescalculspr´ec´edentssurlexempleplusgrossuivant: > v1:=randvector(5);v2:=randvector(5);v3:=evalm (2*v1v2);v4:=evalm(v1+v3); Donnerunebasedelespacevectorield´eniparlese´quationssuivantes: > eqs :={66*x129*x291*x353*x419*x5 = 0, 47*x1+68*x272*x387*x4+79*x5 = 0}; eqs:= {66x129x291x353x419x5= 0,47x1+ 68x272x387x4+ 79x5= 0}
4