#126 Le 06/08/2010, à 21:24
- Zenigata
Re : Une autre approche du C++ standard
Il n'est pas si différent. Il consiste à calculer a^b où a et b sont des réels. On sait que a^b = exp(ln(a)*b). Si on veut évaluer cette expression, bien entendu sans utiliser cmath, il faut faire la série de taylor de exp(ln(a)*b). On choisit une tolérance, qui est, pour une méthode itérative, la différence, en valeur absolue, entre la valeur calculée au pas k et la valeur vraie de l'expression. Bien entendu, on ne connait pas la vraie valeur, puisqu'on cherche à la calculer.. Une bonne approximation est donc d'utiliser la difflrence, en valeur absolue, entre la valeur au pas k et la valeur au pas k-1.
Argh !!! Non, ne jamais dire que ||u_k - u_{k-1}|| sert à estimer ||u_k - u_\infty|| !
Ce n'est pas parce que la différence entre deux termes consécutifs tend vers 0 que ta suite est "proche" d'avoir convergé, ceci pour deux raisons :
1) ce n'est pas parce que ||u_k - u_{k-1}|| tend vers 0 que ta suite converge (pour qu'elle converge, il faudrait être dans un Banach), elle est alors simplement une suite de Cauchy. Un bon contre exemple classique est la suite u_n = ln(n), on a u_k - u_{k-1} = ln(k/(k-1)) qui tend vers 0, alors que ln(n) diverge.
2) En admettant qu'on ait une suite convergente, rien ne dit que localement tu ne puisses pas avoir ||u_{k_0} - u_{k_0-1}|| proche de 0 alors qu'on est loin de la limite.
Hors ligne
#127 Le 07/08/2010, à 02:23
- Le Farfadet Spatial
Re : Une autre approche du C++ standard
Salut à tous !
Sans entrer dans une confrontation
Il ne s'agit pas de confrontation, enfin pas de mon point de vue. Si j'ai rendu le document disponible tôt dans sa rédaction, c'est justement pour avoir des retours, alors je suis heureux que l'on me fasse part de son avis. Simplement, il y a des choses qui sont fondamentalement le parti pris du document, donc sur lesquelles je ne veux pas revenir – sauf à changer d'objectif, mais alors il faudra vraiment qu'il s'avère clairement que je vais dans le mur.
Lorsque l'on me fait un retour qui va dans ce sens, je tiens à expliciter les raisons qui ne me font pas totalement prendre en compte cet avis : dans la mesure où j'ai sollicité cet avis, cela me semble la moindre des choses.
Je me dis qu'il est juste bon de rappeler certaines notions qui pour certains sont vieilles ou jamais vue
Oui, ça j'en suis persuadé.
renvoyant vers un site
J'espère bien être capable d'exprimer clairement des notions aussi simples sans avoir recours à un site !
Argh !!! Non, ne jamais dire que ||u_k - u_{k-1}|| sert à estimer ||u_k - u_\infty|| !
Et c'est moi qui met des maths compliqués !
Bon, je suis d'accord avec ton intervention. Simplement, l'estimation de ce genre de fonctions est un sujet intéressant, mais finalement un peu délicat. Il y a tous les problèmes de la qualité de l'estimation et des temps de calcul. Là, il va sans dire que ce n'est pas du tout l'objet du document dont il est question ici – même si je ne pense pas que l'objectif de ton intervention était de me le faire ajouter.
À bientôt.
Le Farfadet Spatial
Hors ligne
#128 Le 07/08/2010, à 07:33
- ffw137
Re : Une autre approche du C++ standard
Mauvais choix de mots, maudit français, donc je clarifie
Sans entrer dans une confrontation
Pas de vainqueur, ni vaincu mais une situation win-win, ce qui se passe ici!
Ensuite:
renvoyant vers un site
Pas parce que tu n'expliques pas bien mais pour approfondir le sujet, comment en est-on arrivé à cette formule, sur quels concepts mathématiques repose-t-elle, comment la démontre-t-on, qu'elle sont ses évolutions. Comme cela est ton domaine, je pensais que tu serais plus à même de donner un site que tu considères comme référence pour cela ou un bouquin en n'oubliant pas que de nombreuses personnes n'ont parfois pas les moyens financiers de les acquérir à bon prix.
Tu vois, j'ai encore ma mauvaise habitude qui revient, qui résumait mon ancienne signature: "Le premier pas est "Comment?" Le second est "Comme ceci.""
C'est vrai que:
||u_k - u_{k-1}|| sert à estimer ||u_k - u_\infty||
Cela fait peur quand on ne voit pas/plus à quoi cela correspond!
Bon week-end à tous!
Dernière modification par ffw137 (Le 07/08/2010, à 07:33)
Acer 5610-Epson DX3850-Samsung ML-1640-Lucid
Samsung NC-10-Lucid-Ecran 17"
"Un philosophe c'est quelqu'un qui est prêt à faire mourir les autres pour ses idées avant d'en changer quand vient son tour" (perso enfin je pense)
Hors ligne
#129 Le 07/08/2010, à 08:09
- ffw137
Re : Une autre approche du C++ standard
Sauf erreur de ma part:
Il consiste à calculer a^b où a et b sont des réels. On sait que a^b = exp(ln(a)*b).
Si a est un réel, il peut être négatif ou nul et le logarithme népérien est alors non défini.
C'est cette méthode qui plantait les TI-30 dans les années 80 lorsque l'on faisait -1 ^ 3 et renvoyait "Err" au lieu de -1.
Acer 5610-Epson DX3850-Samsung ML-1640-Lucid
Samsung NC-10-Lucid-Ecran 17"
"Un philosophe c'est quelqu'un qui est prêt à faire mourir les autres pour ses idées avant d'en changer quand vient son tour" (perso enfin je pense)
Hors ligne
#130 Le 07/08/2010, à 11:04
- Le Farfadet Spatial
Re : Une autre approche du C++ standard
Salut à tous !
Parfois, je saute des questions, c'est dommage.
PS: Question peut être une peu bête, dans les mathématiques, il y a des fonctions qui ne renvoient rien?
En mathématiques, une fonction est une relation entre deux espaces (éventuellement deux fois le même). À un élément du premier espace, elle en associe un autre du deuxième espace. Donc, d'après cette définition, une fonction en mathématiques renvoie nécessairement quelque chose.
Si a est un réel, il peut être négatif ou nul et le logarithme népérien est alors non défini.
Tout à fait. Il en sera un peu question à la fin du document, lorsque l'on en arrivera au calcul d'une puissance dans le cas général.
À bientôt.
Le Farfadet Spatial
Hors ligne
#131 Le 07/08/2010, à 11:27
- ffw137
Re : Une autre approche du C++ standard
En mathématiques, une fonction est une relation entre deux espaces (éventuellement deux fois le même). À un élément du premier espace, elle en associe un autre du deuxième espace. Donc, d'après cette définition, une fonction en mathématiques renvoie nécessairement quelque chose.
C'est ça qui parfois me fait tiquer quand je lis qu'une procédure est une fonction qui ne renvoie rien et qui est bien différenciée en pascal pourtant une procédure modifie quelque chose (même un bête affichage qui modifie l'écran ou ouvrir un menu), donc elle renvoie bien un résultat mais d'une manière plus subtile, de ce fait c'est bien une fonction qui parfois n'a même pas besoin de paramètres.
C'est ma façon de voir les choses et ce n'est pas une certitude, ce n'est qu'une affirmation personnelle.
PS: @Farfadet Spatial: pourquoi as-tu choisi Darcs, tu n'étais pas sur Mercurial avant? Si oui tu peux poster ce qui t'as fait changer ici: http://forum.ubuntu-fr.org/viewtopic.php?id=404692
Dernière modification par ffw137 (Le 07/08/2010, à 11:28)
Acer 5610-Epson DX3850-Samsung ML-1640-Lucid
Samsung NC-10-Lucid-Ecran 17"
"Un philosophe c'est quelqu'un qui est prêt à faire mourir les autres pour ses idées avant d'en changer quand vient son tour" (perso enfin je pense)
Hors ligne
#132 Le 07/08/2010, à 12:14
- Le Farfadet Spatial
Re : Une autre approche du C++ standard
Salut à tous !
C'est ça qui parfois me fait tiquer quand je lis qu'une procédure est une fonction qui ne renvoie rien et qui est bien différenciée en pascal pourtant une procédure modifie quelque chose (même un bête affichage qui modifie l'écran ou ouvrir un menu), donc elle renvoie bien un résultat mais d'une manière plus subtile, de ce fait c'est bien une fonction qui parfois n'a même pas besoin de paramètres.
Une procédure n'est pas une fonction, c'est une procédure. Il se trouve que la terminologie C, adoptée également par C++ et Java, consiste à déclarer une procédure comme une fonction, mais en indiquant qu'il n'y a rien de retourné (« void »). Cela peut en effet induire en erreur.
Fondamentalement, la notion de procédure est dépendante de celle d'effets de bords et donc intrinsèque à l'approche impérative.
Un effet de bord, cela consiste essentiellement à modifier la mémoire : la mémoire vive (modification de variable), la mémoire graphique (affichage), le disque dur (écriture dans un fichier) et ainsi de suite… Il y a effet de bord dès que l'on modifie quelque chose sans passer par une valeur de retour, modifier la configuration d'un périphérique, par exemple, est également un effet de bord.
Le problème des effets de bords, d'une part, c'est qu'ils sont difficilement contrôlables, l'exemple typique étant la variable possédant une valeur dont on ne peut plus savoir la signification. C'est donc la source de nombreuses bogues difficiles à traquer. D'autre part, les effets de bords sont difficilement manipulables par les compilateurs, de sorte que leurs possibilités de contrôle et d'optimisation sont réduites. Ce qui fait deux bonnes raisons de privilégier les constantes aux variables.
Cela dit, les effets de bords ont leur utilité, il ne faut pas en avoir peur non plus. Simplement, il faut être conscient de leurs risques et les utiliser avec parcimonie.
On ne peut donc pas dire qu'une procédure est une fonction, car son principe intrinsèque est fondamentalement différent de celui d'une fonction. À la rigueur, tu peux dire qu'il y a procédure dès qu'il y a effet de bord et donc qu'une procédure peu fort bien avoir une valeur de retour.
PS: @Farfadet Spatial: pourquoi as-tu choisi Darcs, tu n'étais pas sur Mercurial avant? Si oui tu peux poster ce qui t'as fait changer ici: http://forum.ubuntu-fr.org/viewtopic.php?id=404692
Je propose à ceux qui sont intéressés par ce sujet à se rendre dans le fil de discussion mentionné. Je vais poster un message sur Darcs dans peu de temps.
À bientôt.
Le Farfadet Spatial
Hors ligne
#133 Le 07/08/2010, à 12:19
- ffw137
Re : Une autre approche du C++ standard
Merci pour cette éclaircissement!
L'effet de bord, j'en avais entendu parler lors de la présentation du Garbage Collector pour éviter les fuites mémoires mais pas pour les autres cas, encore quelque chose d'appris!
Donc comme en pascal, pour une procédure qui renvoie une valeur:
procedure x(var y:integer)
Mais bon, je pense qu'on va commencer à mélanger pascal et C++, sinon la pagaille.
Dernière modification par ffw137 (Le 07/08/2010, à 12:26)
Acer 5610-Epson DX3850-Samsung ML-1640-Lucid
Samsung NC-10-Lucid-Ecran 17"
"Un philosophe c'est quelqu'un qui est prêt à faire mourir les autres pour ses idées avant d'en changer quand vient son tour" (perso enfin je pense)
Hors ligne
#134 Le 08/08/2010, à 16:07
- Le Farfadet Spatial
Re : Une autre approche du C++ standard
Salut à tous !
Le dépôt Darcs http://le-bars.net/yoann/repos/livre-C++/ est à nouveau disponible. Malheureusement, que des changements mineurs pour l'instant. Si j'ai à disposition une prise électrique dans l'avion demain, j'essayerais de faire les ajouts demandés par Ffw137.
À bientôt.
Le Farfadet Spatial
Hors ligne
#135 Le 12/08/2010, à 10:51
- ffw137
Re : Une autre approche du C++ standard
@Farfadet Spatial : http://forum.ubuntu-fr.org/viewtopic.php?pid=3656560#p3656560, je te cite avec un ton humoristique pour que tu ne sois pas surpris!
Acer 5610-Epson DX3850-Samsung ML-1640-Lucid
Samsung NC-10-Lucid-Ecran 17"
"Un philosophe c'est quelqu'un qui est prêt à faire mourir les autres pour ses idées avant d'en changer quand vient son tour" (perso enfin je pense)
Hors ligne
#136 Le 13/08/2010, à 10:28
- Adhémar
Re : Une autre approche du C++ standard
Juste pour signaler, une petite erreur (enfin, un typo, plutôt) : page 6, concernant le domaine des double:
les ordinateurs respectent la norme IEEE 754, de sorte qu’un flottant en double précision peut stocker des valeurs comprises entre −1,7 × 10^−308 et 1,7 × 10^308 .
La borne inférieure n'est elle pas plutôt −1,7 × 10^308. Il serait peut être intéressant de discuter plus en détail la précision finie des double. En tout cas, ça m'intéresserait, parce que je n'y ai jamais rien compris, mais c'est important, surtout pour faire des simulations numériques.
Je suis en tout cas le développement du livre avec attention !
Adhémar
Hors ligne
#137 Le 14/08/2010, à 04:38
- Le Farfadet Spatial
Re : Une autre approche du C++ standard
Salut à tous !
@Farfadet Spatial : http://forum.ubuntu-fr.org/viewtopic.php?pid=3656560#p3656560, je te cite avec un ton humoristique pour que tu ne sois pas surpris!
Pour tout dire, je suis en plein dans le déménagement, je suis arrivé lundi aux États-Unis, je n'ai que des problèmes, je pars en conférence la semaine prochaine, rien n'est prêt : je ne m'en serais pas rendu compte si tu ne l'avais pas dit. Je dois même reconnaître que je me suis contenté de lire ton intervention en diagonale. De toute façon, je le prends comme un hommage.
Puis, tu as bien le droit de me citer comme tu veux !
La borne inférieure n'est elle pas plutôt −1,7 × 10^308.
Si, bien sûr. Je corrige ça tout de suite, c'est très rapide.
Il serait peut être intéressant de discuter plus en détail la précision finie des double. En tout cas, ça m'intéresserait, parce que je n'y ai jamais rien compris, mais c'est important, surtout pour faire des simulations numériques.
Oui, je vais en parler, ce sera dans le retour sur les types que je vais placer après la présentation des variables. Je suis désolé, mais ce document est un peu en suspend en ce moment au vu de tout ce qui me tombe sur la tête dans l'immédiat.
À bientôt.
Le Farfadet Spatial
Hors ligne
#138 Le 06/09/2010, à 09:42
- Elfangor
Re : Une autre approche du C++ standard
Bonjour,
Serais-ce possible d'avoir accès à la version en cours de développement?
J'ai malheuresement perdu la version que j'avais récuperer.
Merci!
P.S: Up au passage
Hors ligne
#139 Le 06/09/2010, à 19:59
- Le Farfadet Spatial
Re : Une autre approche du C++ standard
Salut à tous !
Serais-ce possible d'avoir accès à la version en cours de développement?
J'ai malheuresement perdu la version que j'avais récuperer.
Malheureusement, ma sœur a déplacé le serveur le week-end précédent, provoquant un léger court-circuit. En soit, rien de bien méchant, mais il faut faire une intervention directement sur le serveur : je suis en train de la faire faire par ma sœur, mais c'est une intervention à distance, donc ce qui devrait prendre cinq minutes n'est toujours pas résolu, d'autant que s'ajoute des problèmes sur le portable de ma sœur, je vous passe les détails.
Le résultat, c'est que le serveur n'est pas accessible en ce moment, pour une durée indéterminée : j'espère résoudre le problème cette semaine, mais je ne peux rien assurer.
Tu peux néanmoins télécharger le PDF à cette adresse :
http://dl.free.fr/getfile.pl?file=/5ijMuoTJ
De toute façon, je n'ai toujours pas vraiment achevé mon déménagement, je n'ai donc pas avancé dessus depuis un mois, mes excuses.
Je vous tiens au courant lorsque le serveur est à nouveau disponible. Une fois bien installé, je vais essayer de dédoubler le serveur, afin que si l'un tombe, il y en ait un en recours, mais ce n'est pas pour tout de suite.
À bientôt.
Le Farfadet Spatial
Hors ligne
#140 Le 06/09/2010, à 20:00
- helly
Re : Une autre approche du C++ standard
Hey sinon si j'ai bien compris tu rédiges en LaTeX, comme je boss dessus j'essaye d'avoir des exemples de docs.
Où sont tes sources ?
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#141 Le 06/09/2010, à 21:28
- Le Farfadet Spatial
Re : Une autre approche du C++ standard
Salut à tous !
Où sont tes sources ?
Comme déjà dit : sur mon serveur. Pour l'instant, le serveur est indisponible. Ce serveur me sert pour mon travail, donc cela me pénalise plus que vous !
J'essaye de le remettre en fonction, mais il va falloir attendre un peu.
À bientôt.
Le Farfadet Spatial
Hors ligne