Itération

Discutez d'informatique ici !
Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

Itération

par Dlzlogic » 27 Nov 2012, 15:12

Bonjour,
Je cherche à faire une itération.
J'ai une formule y=f(x)
J'ai une bonne valeur approchée de x1 en fonction de y.
J'en déduis y1=f(x1)
Je cherche une méthode itérative qui me permette d'approcher une valeur de x telle que l'écart sur y sera inférieure à un valeur donnée.
Les méthodes du type Newton, c'est dire basées sur le fait que la tangente à la fonction est proche de sa courbe sont à mon avis à exclure.
Il s'agit de trouver une méthode d'encadrement telle qu'on soit sûr de converger.
Merci d'avance.



Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 15:16

Bref, tu cherches à résoudre en x l'équation y=f(x) , de manière approximée.

De quel genre est la fonction f ?

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 15:34

Bref, tu cherches à résoudre en x l'équation y=f(x) , de manière approximée.

De quel genre est la fonction f ? quelles sont ces qualités ?

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 27 Nov 2012, 16:04

leon1789 a écrit:Bref, tu cherches à résoudre en x l'équation y=f(x) , de manière approximée.

De quel genre est la fonction f ? quelles sont ces qualités ?

Il me parait hors de question d'essayer de résoudre en x l'équation y = f(x), elle est beaucoup trop compliquée, la seule chose qu'on pet dire, c'est qu'elle est monotone sur des domaines très petits.
Mais effectivement, je cherche "à résoudre en x l'équation y=f(x) , de manière approximée."
La seule méthode que je crois possible est de déterminer de façon itérative un domaine de définition de plus en plus petit et d'interpoler linéairement, mais pour l'instant, je diverge.
En fait ce sont des méthodes que j'ai déjà utilisées, mais mes liaisons neuronales se brouillent un peu.

C.Ret
Membre Relatif
Messages: 497
Enregistré le: 02 Juil 2012, 12:33

par C.Ret » 27 Nov 2012, 18:39

[Bonsoir, Dlzlogic

Je crois avoir aussi déjà utilisé ces méthodes il y a longtemps, dichotomie, méthode de Newton, méthodes des trapèzes, ... J'ai lu récemment qu'il existait maintenant d'autres techniques numériques qui sont très efficaces surtout si l'on les choisi en fonction des "qualités" ou "propriété" de la fonction f(x).

D'où la question pertinente de leon1789 !

Pour ma part, je fais souvent confiance en la méthode intégrée dans ma calculette.
Si tu nous donnes une expresson de ta fonction, je peux essayer de trouver quelques racines de cette manière.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 27 Nov 2012, 19:11

C.Ret a écrit:[Bonsoir, Dlzlogic

Je crois avoir aussi déjà utilisé ces méthodes il y a longtemps, dichotomie, méthode de Newton, méthodes des trapèzes, ... J'ai lu récemment qu'il existait maintenant d'autres techniques numériques qui sont très efficaces surtout si l'on les choisi en fonction des "qualités" ou "propriété" de la fonction f(x).

D'où la question pertinente de leon1789 !

Pour ma part, je fais souvent confiance en la méthode intégrée dans ma calculette.
Si tu nous donnes une expresson de ta fonction, je peux essayer de trouver quelques racines de cette manière.

La fonction est du 4è degré avec 2 variables elle tient sur 4 lignes (!).
En fait il s'agit de 2 fonctions qui marchent ensemble, donc, pour être plus rigoureux
A=f(x,y)
B=g(x,y)
Donc, à partir d'une grille, on détermine x et y avec une bonne précision, par interpolation bi-linéaire.
Ensuite, étant donné un x et un y, on peut calculer AN et BN.
Ayant AN et BN, on recalcule xN et yN, et on a un écart en A et B.
Cela permet de corriger x et y approché, et de recommencer.
Je divergeais et surtout, j'avais oublié de tester le sens de l'écart constaté pour appliquer la correction dans le bon sens.
Maintenant, ça marche et j'ai au plus 2 itérations, ce qui est tout à fait satisfaisant.
En fait c'est une vieille méthode utilisée en topométrie, on appelle ça une méthode semi-graphique, suivant le principe "on calcule juste avec des valeurs approchées, on peut calculer de façon précise l'écart, on corrige puis on recommence". Evidemment, maintenant qu'on est équipé, on fait tout à la machine, mais la méthode reste la même.
La plupart des triangulations sont calculées de cette manière (distances, plusieurs Km, précision, quelques cm.)
Merci.

PS :
Z = 3751*a*a-10*a^4-520*b*b+13295*b^3+32327*a*b-25491*a*a*b-41672*a*b*b+10*a^3*b-5227*a^(1/2)+2952*a^(1/4)

avec :

a = 10*x/(2.4*x+34*y+1) et b = 10*y/(2.4*x+34*y+1)

et :

;) = 404*b' - 185*b'*b'+52*b'^3+69*a'*(1-b'*b')-3*a'*a'*b'+30*a'*b'^3

avec :

a' = 10*x/(4.2*y-x+1) et b' = 10*y/(4.2*y-x+1)
Oui, je sais c'est un peu compliqué, tellement d'ailleurs que cette formule avait été abandonnée.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 19:21

Dlzlogic a écrit:Il me parait hors de question d'essayer de résoudre en x l'équation y = f(x), elle est beaucoup trop compliquée, la seule chose qu'on pet dire, c'est qu'elle est monotone sur des domaines très petits.
Mais effectivement, je cherche "à résoudre en x l'équation y=f(x) , de manière approximée."

ok.

Être monotone sur des petits domaines, cela n'est pas vraiment fulgurant comme hypothèse de départ...

Est-elle continue ta fonction ? (C'est le minimum syndicale, sinon, on ne peut rien espérer.)

Dlzlogic a écrit:La seule méthode que je crois possible est de déterminer de façon itérative un domaine de définition
de plus en plus petit (...)

tu veux dire un intervalle de recherche de plus en plus petit (car le domaine de définition d'une fonction, il est ce qu'il est, on ne peut pas le changer).

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 19:23

Dlzlogic a écrit:La fonction est du 4è degré avec 2 variables elle tient sur 4 lignes (!).
En fait il s'agit de 2 fonctions qui marchent ensemble, donc, pour être plus rigoureux
A=f(x,y)
B=g(x,y)

ah ! C'est donc un système polynomial deux équations de degré 4 à 2 variables, genre


c'est bien ça ?

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 19:26

Dlzlogic a écrit:Merci.

ton problème est donc résolu maintenant (?)

Dlzlogic a écrit:Oui, je sais c'est un peu compliqué, tellement d'ailleurs que cette formule avait été abandonnée.

pas forcément si difficile que ça.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 27 Nov 2012, 19:29

T'as été trop rapide, je l'ai copiée entre-temps.
Je ne suis même pas sûr qu'elle soit partout continue, mais il semble bien qu'elle le soit, en tout cas dans l'intervalle de définition.
Oui, mon problème est résolu, non, c'était pas difficile, mais j'y arrivais pas.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 19:41

Z = 3751*a*a-10*a^4-520*b*b+13295*b^3+32327*a*b-25491*a*a*b-41672*a*b*b+10*a^3*b-5227*a^(1/2)+2952*a^(1/4)

avec :

a = 10*x/(2.4*x+34*y+1) et b = 10*y/(2.4*x+34*y+1)

et :

;) = 404*b' - 185*b'*b'+52*b'^3+69*a'*(1-b'*b')-3*a'*a'*b'+30*a'*b'^3

avec :

a' = 10*x/(4.2*y-x+1) et b' = 10*y/(4.2*y-x+1)

ok !

Ce n'est pas polynomial (donc pas de degré 4) puisqu'il y a des radicaux et des fractions.

Je vois qu'il y a des Z et ;) : ce sont des paramètres du système ? Les inconnues sont bien x et y ?

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 27 Nov 2012, 19:59

Oui, c'est vrai c'est pas de degré 4, mais en faisant le changement de variable, ça a tout de même bien la tête d'un polynôme.
1ère équation Z = f(x,y)
2nd équation µ = g(x,y)
Moi, dans mon langage périmé, j'appelle ça des formules, il y a des constantes, pas de paramètres, dans la configuration citée x et y sont les variables Z et µ sont les résultats des formules, le problème consiste à trouver x et y si on connait Z et µ.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 20:17

Est-ce que µ et Z ont des valeurs vraiment quelconques, de - l'infini à + l'infini, ou bien des valeurs plus particulières (entre 0 et 10 par exemple) ?
Est-ce que ton système admet une seule ou plusieurs solutions en général ?

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 27 Nov 2012, 20:46

D'après les éléments dont je dispose, Z peut varier entre 700 et 1100, µ entre 200 et 500, x entre 0.01 et 0.70 y entre 0.02 et 0.65, approximativement. mais le domaine de définition n'est pas un rectangle.
En fait il ne peut y avoir qu'une solution, que j'exprimerai sous la forme (x,y) <==> (Z,µ).
Moi, j'appelle ça bi-univoque, maintenant, je ne sais pas comment on dit, peut-être "fonction bijective".

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 27 Nov 2012, 21:09

Pour l'instant, je n'ai que quelques résultats numériques :
pour Z = 700 et µ = 200 , il vient
pour Z = 700 et µ = 500 , il vient }
pour Z = 1100 et µ = 200 , il vient
pour Z = 1100 et µ = 500 , il vient

J'ai utilisé un logiciel de calcul (évidemment, je n'ai pas fait de calcul à la main :ptdr: ).

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 28 Nov 2012, 07:54

Dlzlogic a écrit:La seule chose qu'on pet dire, c'est qu'elle est monotone sur des domaines très petits.


Dlzlogic a écrit:En fait il s'agit de 2 fonctions qui marchent ensemble, donc, pour être plus rigoureux
A=f(x,y)
B=g(x,y)


Ok, tu considères une fonction à deux variables réelles (x,y) et à valeurs dans R^2.
Que veux-tu dire par elle est monotone sur des domaines très petits ?
Parce que je sais ce qu'est une fonction monotone quand celle-ci va de R dans R, mais pour des fonctions de R^2 dans R^2, je ne vois pas du tout...

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 28 Nov 2012, 09:51

Dlzlogic a écrit:La seule chose qu'on pet dire, c'est qu'elle est monotone sur des domaines très petits.


Dlzlogic a écrit:En fait il s'agit de 2 fonctions qui marchent ensemble, donc, pour être plus rigoureux
A=f(x,y)
B=g(x,y)


Ok, tu considères une fonction à deux variables réelles (x,y) et à valeurs dans R^2.
Que veux-tu dire par elle est monotone sur des domaines très petits ?
Parce que je sais ce qu'est une fonction monotone quand celle-ci va de R dans R, mais pour des fonctions de R^2 dans R^2, je ne vois pas du tout...

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 28 Nov 2012, 10:13

Dlzlogic a écrit:En fait il ne peut y avoir qu'une solution, que j'exprimerai sous la forme (x,y) (Z,µ).
Moi, j'appelle ça bi-univoque, maintenant, je ne sais pas comment on dit, peut-être "fonction bijective".

Humm... Par exemple, aux alentours de Z = 1071 et µ = 339 , il n'y a pas qu'une solution me semble-t-il.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 28 Nov 2012, 12:29

J'ai dit que mon problème était RESOLU.
J'ai créé ce topic dans le forum "Informatique", j'ignorais que tu avais AUSSI des choses à dire dans ce domaine. Quel langage utilises-tu ?
La question précise que j'ai posée, l'était suffisamment (j'ai pris mes précautions) pour éviter de s'embarquer dans des diversions à n'en plus finir.
Dans le cas présent, il s'agit juste d'une méthode de résolution.
En fait, j'ai bien l'impression que ton intervention n'a pour but que de démontrer que j'ai tort, sur quoi, ça n'a pas vraiment d'importance, donc, pour simplifier, tort sur tout.

Si ce sujet t'intéresse, pourquoi n'y as-tu pas répondu plus tôt ? En effet, ma question résulte du calcul que j'ai fait, suite à une demande, sur un forum que tu fréquentes et sur lequel tu ne manques pas de m'agresser.
Donc, il n'est plus nécessaire que tu interviennes sur ce sujet-ci.
Mais rassure-toi, je répondrai à d'autres questions sur ce forum, tu auras donc encore l'occasion de m'agresser.

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 28 Nov 2012, 13:58

je vais repondre directement pour Sylviel|Leon en attendant.

Si ce sujet t'intéresse, pourquoi n'y as-tu pas répondu plus tôt ?

Les gens ne sont pas 24/24 sur le forum, et n'ont pas forcement dans l'immediat envie de repondre.

La question précise que j'ai posée, l'était suffisamment (j'ai pris mes précautions) pour éviter de s'embarquer dans des diversions à n'en plus finir.

Ta question est tout sauf precise.

Donc, il n'est plus nécessaire que tu interviennes sur ce sujet-ci.

Et enfin, non. Ca fait plusieurs fois que tu tentes de clore des discussions de cette maniere. Tu n'as pas a demander aux autres de cesser d'intervenir. Ca n'a rien a voir avec le fait que tu aies tord ou non. Tu n'as pas a dicter la conduite des autres, hormis les eventuels rappels d'un suivi de charte.
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

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