[Projet] arithmétique d'intervalle et calcul formel

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

[Projet] arithmétique d'intervalle et calcul formel

par psp » 11 Aoû 2014, 20:12

Salutations,


J'essaie de développer un module de calcul numérique rigoureux sur les fonctions réelles continues définies sur un segment (petit)
L'idée est de représenter une fonction par un polynôme , accompagné d'une borne d'erreur sur le segment

On dois pouvoir effectuer toutes sortes d'opérations (addition, multiplication, composition...) sur ces approximations polynomiales EN propageant toutes les erreurs commises sur la borne d'erreur.

Tout se fait sur sage, c'est un logiciel libre de mathématiques.

J'ai acheté et lu Validated Numerics - A Short Introduction to Rigorous Computations pour m'initier à l'arithmétique d'intervalle et obtenir des bornes d'erreurs correctes, mais jusque là c'est moyen.

Pour l'instant, afin d'obtenir mon approximation polynomiale j'utilise Taylor et je définis la borne d'erreur avec Lagrange Error Bound : , y a t-il des méthodes d'approximation plus précises s'appliquant aux fonctions réelles continues sur un segment [a ; b] ?? Si vous avez plusieurs méthodes c'est encore mieux je les essaierai toutes.

Pour des raisons pratiques le degré des approximations polynomiale sera limité à 20, donc un autre problème se pose celui de la troncature, exemple l'utilisateur entre un polynôme de degré 4120, défini sur un segment [a,b], quelles sont les méthodes permettant d'approcher ce polynôme par un autre de degré au plus 20, et comment définir la borne d'erreur.

Dernier exemple, j'ai deux approximations polynomiales avec leur bornes d'erreur et je fais la composition ou la multiplication de ces approximations, comment établir la borne d'erreur du résultat ? Une fois encore si vous avez plusieurs méthodes je les essaierai toutes, si vous avez du temps libre je peux vous communiquer mon skype afin d'échanger plus facilement.

Merci d'avance
Cordialement



psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 15 Aoû 2014, 15:26

Rien ? Même pas une piste ?
:(

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 16 Aoû 2014, 10:49

hello,

alors pour ton polynome de degré 20, je pense avoir un truc dans les grandes lignes pour etre au plus pres de ton autre polynome.
soit P ton polynome et p(i) ses coeffs, donc p(i)=0 pour i>20
soit f l'autre polynome, et f(i) ses coeffs

on cherche à minimiser la distance


Soit la dérivée de par rapport à
en intervertissant intégrale et dérivée (il faut des conditions mais je suppose qu'elles sont vérifiées...), il vient


avec



En cherchant ,
on peut donc écrire
avec et

et donc on obtient l'équation matricielle
, avec B le vecteur colonne formé des et A la matrice formée des lignes

On déduit alors les p(i) qui minimisent ta distance!

Moyennant l'inversibilité, la possibilité d'intervertion dérivée intégrale, et les erreurs d'indice ou tout court :D

Quant à l'erreur, ben je sais pas comment tu la calcules, mais c'est assez immédiat une fois que t'as trouvé ton polynome (les p(i)) j'imagine...
la vie est une fête :)

psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 20 Aoû 2014, 20:37

Merci beaucoup, j'ai implémenté ta solution et la détermination des bornes d'erreur.

Concernant le problème d'approche des fonctions usuelles sur un petit intervalle, j'ai trouvé une piste : "Polynôme de meilleure approximation uniforme" mais les rares cours me sont incompréhensibles...

Pouvez vous s'il vous plait m'expliquer ou me mettre en lien des cours compréhensible sur les méthodes dont j'ai besoin.

Merci d'avance

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 20 Aoû 2014, 21:15

salut,

je pense pas pouvoir t'expliquer mais:
http://sin-web.paris.ensam.fr/IMG/pdf/C4.pdf

slide 16,
on donne le polynome Pn tq |f-Pn| donne la meilleure approx de 0
c'est pas la même norme que moi (moi c'est norme 2 jpense), la c'est norme uniforme..
(http://nte-serveur.univ-lyon1.fr/immediato/Math/Enseignement/05%20Analyse/15%20-%20Normes/D%E9finitions_15.htm#differentes_normes)

bref ton Pn est donné slide 16
et Tn est définit chez wikipedia
http://fr.wikipedia.org/wiki/Polyn%C3%B4me_de_Tchebychev
encore que t'as ptet intérêt à conserver les racines de Tn (les a_k) et lors de l'évaluation de faire le produit
prod_k^n(x-a_k)
la vie est une fête :)

psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 21 Aoû 2014, 20:42

J'essaie de comprendre tout seul mais il n'y a aucun exemple sur les cas qui m'intéressent, par exemple cos(x) sur [1;2]

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 21 Aoû 2014, 22:07

mettons n=4
On cherche un polynome de degré 4 qui minimise
|Pn(x) - cos(x)|_inf

d'après ppt,
tu transformes cos(x) en polynome donc tu peux écrire son DSE


D'ou

donc comme tu veux faire péter le terme de plus haut degré (tq tu récupères Pn de degré 4) le DSE de cos(x) donne des puissances paires, et les T_n pour n paires aussi... donc tu peux t'arreter à x^6, idem T_6


le terme de plus haut degré est a_6=\frac{1}{720}
donc

(voir wiki)
d'ou
(les termes en x^6 sautent) et on récupère donc notre meilleur polynome (jte laisse développer réduire) sur [0;1] de cos(x)

pour [1;2]
rebelotte sauf que


avec b==2 et a==1,




avec q un polynome de degré inférieur à 6
du coup on pose
a_n tq
(pour que les termes en x^6 sautent)
d'ou
et donc


sauf erreur...
la vie est une fête :)

psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 22 Aoû 2014, 00:22

Merci beaucoup je vais essayer avec d'autres fonctions élémentaires

psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 22 Aoû 2014, 16:22

J'essaye avec sin(x) sur [2;3], n = 6

J'exprime le DSE au degré minimal majorant de n, j'obtiens
Le terme de plus haut degré est

Je peux poser :


psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 22 Aoû 2014, 16:37

J'essaye avec sin(x) sur [2;3], n = 6

J'exprime le DSE au degré minimal majorant de n, j'obtiens
Le terme de plus haut degré est

Je peux poser :





Donc , deg(r)< 7

On résolve :
Ce qui donne

Enfin :

Question : Puis-je utiliser cette méthode pour toute les fonctions usuelles classiques (cos, sin, tan, log, , arcsin, arccos, etc..) ??

Merci

psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 27 Aoû 2014, 17:06

Pour la troncature, est ce que tu peux me dire comment tu as trouvé cette méthode, peux-tu détailler le raisonnement ? J'ai du mal à m'expliquer ta méthode,j'aimerai la comprendre totalement pour expliquer sur papier sa validité autrement qu'empiriquement

merci beaucoup

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 27 Aoû 2014, 17:16

tu appèles quoi par troncature?
si c'est la troncature du DSE de la fonction que tu essaies d'interpoler, ben tu t'arretes au degré, tq à ce degré ton polynome de chebycheff va te faire récupérer le degré que tu cherches...

si tu cherches un pol de degré P,
ben tu t'arretes au DSE au degré P', tq
deg(DSE(0,P') - aTn) = P
généralement P'=P+1, mais dans le cas des fonctions style sinus ou cosinus, ca peut etre P+2...

après si ta question c'est pourquoi tu choisis le a tq le terme de plus haut degré saute, c'est une bonne question, ca me parait naturel, mais je sais pas l'expliquer :)
la vie est une fête :)

psp
Membre Relatif
Messages: 312
Enregistré le: 23 Oct 2007, 15:35

par psp » 27 Aoû 2014, 19:42

fatal_error a écrit:tu appèles quoi par troncature?
si c'est la troncature du DSE de la fonction que tu essaies d'interpoler, ben tu t'arretes au degré, tq à ce degré ton polynome de chebycheff va te faire récupérer le degré que tu cherches...

si tu cherches un pol de degré P,
ben tu t'arretes au DSE au degré P', tq
deg(DSE(0,P') - aTn) = P
généralement P'=P+1, mais dans le cas des fonctions style sinus ou cosinus, ca peut etre P+2...

après si ta question c'est pourquoi tu choisis le a tq le terme de plus haut degré saute, c'est une bonne question, ca me parait naturel, mais je sais pas l'expliquer :)


Ah non j'aurais du préciser c'est ma faute, je parlais de ta première réponse (polynôme de degré 20)

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 52 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite