Forum debian-fr.org

Rechercher:

* Connexion   * M’enregistrer

* FAQ    * Rechercher





Poster un nouveau sujet Répondre au sujet  [ 35 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
MessagePosté: 11 Fév 2012 09:08 
Hors ligne
Très bavard(e)!

Inscription: 30 Aoû 2008 17:33
Messages: 412
Bonjour,

Je dispose de l'équation suivante :
Code:
sin(3*a) = 3*sin(a) - 4*(sin(a)^3)


On peut la renommer ainsi :
Code:
x = 3*y - 4*(y^3)


J'aimerai exprimer y en fonction de x, c'est à dire la transformer pour obtenir une équation de la forme :
Code:
y = f(x)


Quelqu'un a une idée ?


Haut
 Profil  
 
MessagePosté: 11 Fév 2012 13:13 
Hors ligne
Grand posteur
Avatar de l’utilisateur

Inscription: 08 Mai 2009 10:56
Messages: 174
Localisation: Lorient
Si c'est une équation (donc on cherche l'inconnue a) alors... de tête (!) S=R.

_________________
Stéphane Lejoly
Arctic MC001-E sous Linux Mint 14 + Xfce, Acer Aspire One 9' sous Debian Wheezy + Lxde, AMD Duron 1,4 GHz sous Debian Squeeze + Gnome 2, Compaq AMD K6 533 MHz sous Asri éducation (Toutou linux), Mac OS X 6.7 sur MacBook intel.


Haut
 Profil  
 
MessagePosté: 11 Fév 2012 13:15 
Hors ligne
Grand posteur
Avatar de l’utilisateur

Inscription: 08 Mai 2009 10:56
Messages: 174
Localisation: Lorient
branch a écrit:
J'aimerai exprimer y en fonction de x
là je ne comprends pas, si tu veux résoudre l'équation cela ne sert à rien.

_________________
Stéphane Lejoly
Arctic MC001-E sous Linux Mint 14 + Xfce, Acer Aspire One 9' sous Debian Wheezy + Lxde, AMD Duron 1,4 GHz sous Debian Squeeze + Gnome 2, Compaq AMD K6 533 MHz sous Asri éducation (Toutou linux), Mac OS X 6.7 sur MacBook intel.


Haut
 Profil  
 
MessagePosté: 11 Fév 2012 13:18 
Hors ligne
Grand posteur
Avatar de l’utilisateur

Inscription: 08 Mai 2009 10:56
Messages: 174
Localisation: Lorient
Bon pour revenir à ma première réponse (les solutions) : en fait c'est une égalité (c'est une formule trigo.) la question cela ne serait pas plutôt : montrer que qqsoit [latex]a\in \R[/latex] on a :
branch a écrit:
sin(3*a) = 3*sin(a) - 4*(sin(a)^3)

_________________
Stéphane Lejoly
Arctic MC001-E sous Linux Mint 14 + Xfce, Acer Aspire One 9' sous Debian Wheezy + Lxde, AMD Duron 1,4 GHz sous Debian Squeeze + Gnome 2, Compaq AMD K6 533 MHz sous Asri éducation (Toutou linux), Mac OS X 6.7 sur MacBook intel.


Haut
 Profil  
 
MessagePosté: 11 Fév 2012 13:19 
Hors ligne
Grand posteur
Avatar de l’utilisateur

Inscription: 08 Mai 2009 10:56
Messages: 174
Localisation: Lorient
Regarde http://gilles.costantini.pagesperso-orange.fr/Lycee_fichiers/CoursT_fichiers/formtrig.pdf
et pars de
Code:
sin(3a)=sin(2a+a)=...
et quelques lignes plus bas tu auras la formule magique !

_________________
Stéphane Lejoly
Arctic MC001-E sous Linux Mint 14 + Xfce, Acer Aspire One 9' sous Debian Wheezy + Lxde, AMD Duron 1,4 GHz sous Debian Squeeze + Gnome 2, Compaq AMD K6 533 MHz sous Asri éducation (Toutou linux), Mac OS X 6.7 sur MacBook intel.


Haut
 Profil  
 
MessagePosté: 11 Fév 2012 15:00 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 25 Avr 2006 09:30
Messages: 1756
Localisation: grenoble
bonjour

Ma première idée est de linéariser sin^3
avec xcas
Code:
lineariser_trigo(sin(x)^3)

_________________
I love vim


Haut
 Profil  
 
MessagePosté: 11 Fév 2012 15:12 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 25 Avr 2006 09:30
Messages: 1756
Localisation: grenoble
re: je viens de regarder ton profil (étudiant mais en quelle année?

Je pense que la méthode attendue est bien la linéarisation.

sin(x)=(e^{ix}-e^{-ix})/2i
tu calcules ainsi sin^3 , développes , simplifies et trouves la réponse. 8)

_________________
I love vim


Dernière édition par limax le 11 Fév 2012 17:49, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 11 Fév 2012 15:23 
Hors ligne
Très bavard(e)!

Inscription: 30 Aoû 2008 17:33
Messages: 412
Effectivement, c'est une égalité, pas une équation à résoudre. Désolé pour l'erreur de vocabulaire.

Je ne cherche pas à la prouver (je l'ai trouvée moi-même à partir de formules de trigo plus simple). Je cherche à obtenir une égalité de ce type :

Code:
sin(a) = B*(sin(3a)^3) + C*(sin(3a)^2) + D*sin(3a) + E
avec B, C, D, E des nombres réels


Alors évidemment, je ne pense pas que j'obtiendrai un joli polynome, mais j'aimerais obtenir une égalité la plus simple possible.

Je cherche à exprimer sin(a) en fonction de sin(3*a).
Il faut partir du principe que je connais sin(3*a), et que je cherche à calculer sin(a).

Grâce au formulaire de trigonométrie, je suis tombé sur cette page de wikipédia : Formule de De Moivre. Elle contient une égalité qui est proche de ce que je cherche (il faut remplacer n par 3) :

Image

Le problème dans cette formule c'est qu'il y a des nombres complexes, donc ça ne m'avance pas à grand chose.

@limax : ce n'est pas un exercice qu'on m'a donné, je le fais juste pour le plaisir. J'ai un niveau en maths de 1ère S. Et je ne comprends pas cette formule :
Code:
sin(x)=(e^{ix}-e^{-ix})/2i


Haut
 Profil  
 
MessagePosté: 11 Fév 2012 15:29 
Hors ligne
Modérateur du forum
Avatar de l’utilisateur

Inscription: 03 Mai 2008 05:16
Messages: 4134
Localisation: Nantes
Arf, j'ai été trop long à répondre.
La formule
Citation:
sin(x)=(e^{ix}-e^{-ix})/2i
met en jeu les exponentielles (e) et le nombre imaginaire (i). C'est normal que tu ne comprennes pas, c'est au programme de terminale S. Cela dit, c'est à partir de ce moment là que les maths deviennent intéressante, donc si ça te tente tu peux aller voir de plus près.
L4exponentielle est une fonction qui a pour dérivée elle même (à un coefficient de proportionnalité près), et i, bas c'est la racine de -1. :)

ancien message :

Je ne vois pas comment inverser l'expression, passer y en fonction de x. C'est une notion de math trop compliquée pour un physicien. Par contre, on peut montrer que c'est vrai (cauchy a la bonne piste)
On utilise les propriétés suivantes :
Citation:
sin(a+b)=sin a * cosb + sinb * cosa (1)
cos(a+b) = cosa*cosb - sinb*sina (2)
cos²a+sin²b = 1 (3)

Citation:
sin(3a) = sin(2a+a)
=sin(2a)*cosa + sina*cos(2a) On utilise (1)
=(2*sina*cosa)*cosa + sina(cos²a-sin²a) On utilise (1)
= 2*sina*cos²a + sina*(1-sin²a-sin²a) On utilise (3)
= 2*sina*cos²a + sina*(1-2*sin²a)
= 2*sina*(1-sin²a) + sina*(1-2*sin²a)
avec y = sina
= 2y * (1-y²) + y(1-2y²)
= 2y-2y^3 + y - 2y^3
= 3y - 4y

_________________
Adhérent april 8505
Auto-hébergez vous! - aide mémoire LaTeX
Debian wheezy, dwm, tor, suckless-tools


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 02:55 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
sin(a) = B*(sin(3a)^3) + C*(sin(3a)^2) + D*sin(3a) + E

sin(3a) = sin(a)+sin(a)^3

On va noter x = sin(a), ainsi sin(3a)= 3*x - 4*x^3

x = B*((3*x - 4*x^3)^3) + C*((3*x - 4*x^3)^2) + D*(3*x - 4*x^3) + E

On developpe tout ce beau monde :

-64B x⁹ + 144B x⁷ + 16C x⁶ - 108B x⁵ - 24C x⁴ + (27B-4D) x³ + 9C x² + 3D x + E = x

Alors la tu as une belle équation polynomiale de degres superieur a 5 ^^ Et il n'existe pas de formule pour résoudre a coup sur ce genre de polynôme :mrgreen: (merci Abel)

Apres est-ce-que c'est un de ces cas speciaux ou on arrive à résoudre tout de meme (trouver 5 racines, abaisser ainsi le degres etc ... :108 )

Mais bon, les sin et cos nous reserve bien des surprises ^^

On linearise le tout (je m'escuse s'il y a des erreurs, mais il se fait tard j'ai une bonne escuse :p)

-B/4 sin(9a) + C/2 cos(6a) - (D+ 3/4 B) sin(3a) - (E+C/2) = sin(a) :whistle:

EDIT : impossible de dodo, je suis aller sur le premier solveur d'equation que google a bien voulu me donner : http://fr.numberempire.com/equationsolver.php
Sorry. Cannot solve this system.

J'abandonne ici. je laisse quand meme tout mes developpements au cas où ca aiderai qqun ^^

Il est a noter que ce n'est pas parce qu'une calculatrice n'y arrive pas que c'est impossible, ni même très difficile

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Dernière édition par Tristan.T le 12 Fév 2012 03:46, édité 2 fois.

Haut
 Profil  
 
MessagePosté: 12 Fév 2012 03:34 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
Et si tu veux trouver les y solutions de : x = 3*y - 4*(y^3)

tu peux utiliser Cardan : http://fr.wikipedia.org/wiki/M%C3%A9thode_de_Cardan que tu auras la choix d'utiliser une fois en TS pour introduire les imaginaires (en tout cas ce fut mon cas) et de ne plus jamais l'utiliser 8)

On trouve seulement une solution réelle

y = (sqrt(x^2-1)/8-x/8)^(1/3)+1/(4*(sqrt(x^2-1)/8-x/8)^(1/3))

Mais bon, on n'est pas plus avancé parce que la on a des racines carré et cubique :naughty:

Si jamais tu veux une rédaction plus développe de mes calculs je pourrai te fournir un .pdf ecrit en LaTeX parce que déjà la c'est pas mangeable en texte seul ^^

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 11:46 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 09 Mai 2008 20:39
Messages: 1043
j'ai rien dit.


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 12:33 
Hors ligne
Très bavard(e)!

Inscription: 30 Aoû 2008 17:33
Messages: 412
Merci pour vos réponses.

@Tristan.T : Cette formule je ne suis pas sûr qu'elle soit bonne :
Code:
sin(a) = B*(sin(3a)^3) + C*(sin(3a)^2) + D*sin(3a) + E

Je l'ai dite au pif pour donner une idée de ce que j'attendais. A mon avis c'est faux, ça serait trop simple.

On ne connaît pas les nombres B, C, D, E donc même si on arrivait à résoudre ça, je ne sais pas ce qu'on pourrais en faire :
Code:
-64B x⁹ + 144B x⁷ + 16C x⁶ - 108B x⁵ - 24C x⁴ + (27B-4D) x³ + 9C x² + 3D x + E = x

Code:
-B/4 sin(9a) + C/2 cos(6a) - (D+ 3/4 B) sin(3a) - (E+C/2) = sin(a)


Sinon, j'ai réussi à factoriser cette expression :
Code:
x = 3*y - 4*(y^3)
x = -4(y - 0)(y - sqrt(3)/2)(y + sqrt(3)/2)


Bon, j'ai réussi à le faire comme ça :

Code:
cos(x) = (cos(2x)+1) / sqrt(2 + 2*cos(2x))

sin(x) = sin(2x) / sqrt(2 + 2*sqrt(1-(sin(2x)^2)))


J'ai trouvé ça géométriquement sur le cercle trigo. Je m'arrête là mais si quelqu'un à une idée pour trouver plus simple (sans utiliser arcsinus et arccosinus), ou avec une division de l'angle plus grande, je suis preneur.


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 13:36 
Hors ligne
Grand posteur
Avatar de l’utilisateur

Inscription: 15 Jan 2011 16:30
Messages: 223
Localisation: Plateau de Millevaches
L'équation x=3y-4y³ est une équation du 3ème degré ( inconnue y ) ; donc en appliquant la méthode de résolution de Cardan , et en posant
4y³-3y+x=0 soit y³-3/4y+x/4=0
et p= -3/4
q= x/4
on calcule son discriminant :
delta= (4/27) p³+q²
on obtient :
delta= (x²-1)/16
x²-1 négatif ( car x est un sinus ) delta aussi
les trois solutions sont réelles et égales à :
( je ne donne pas les formules car c'est long à écrire voir : http://fr.wikipedia.org/wiki/M%C3%A9thode_de_Cardan ) et sauf erreur de ma part , j'obtiens :
y= cos(1/3arccos(-x+2kπ)/3 où k=0;1 ou 2

bonne vérification

_________________
Debian Squeeze Gnome depuis janvier 2011 .
Site de ping


Dernière édition par Christophe23 le 12 Fév 2012 14:06, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 12 Fév 2012 13:59 
Hors ligne
Grand posteur
Avatar de l’utilisateur

Inscription: 15 Jan 2011 16:30
Messages: 223
Localisation: Plateau de Millevaches
réflexion faite , voici bien plus simple :
x=sin(3a) donc 3a=arcsinx +2kπ soit a= 1/3arcsinx +2kπ/3
y=sina donc a=arcsiny +2hπ
d'où 1/3arcsinx +2kπ/3 =arcsiny+2hπ
ou arcsiny =1/3arcsinx +2kπ/3 -2hπ
et y = sin(1/3arcsinx +2kπ/3 )
au lieu des arccos et cos , on a des arcsin et des sin , vu que les deux sont liés ( formules de trigo ) , c'est pareil .

_________________
Debian Squeeze Gnome depuis janvier 2011 .
Site de ping


Dernière édition par Christophe23 le 12 Fév 2012 14:07, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 12 Fév 2012 14:04 
Hors ligne
Grand posteur
Avatar de l’utilisateur

Inscription: 15 Jan 2011 16:30
Messages: 223
Localisation: Plateau de Millevaches
sans arccos et arcsin , je pense qu'il faut faire intervenir les fonctions développables en série entière , ce que je propose en dernier est faisable par un élève de 1ère S ( normalement même avec les programmes actuels )

_________________
Debian Squeeze Gnome depuis janvier 2011 .
Site de ping


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 14:28 
Hors ligne
Très bavard(e)!

Inscription: 30 Aoû 2008 17:33
Messages: 412
Oui Christophe23 c'est exact mais je ne peux pas utiliser la fonction arcsinus ni arccosinus car ... j'essaye de les émuler.

Mon but final est de calculer arcsinus(x). Après observation géométrique sur le cercle trigonométrique, je sais que :

Code:
quand n tend vers l'infini
limite (n * sin(θ/n)) = θ


Donc il faut que je trouve une formule assez simple pour trouver le sinus de l'angle θ/n à partir du sinus de l'angle θ.

Pour l'instant j'ai fait une fonction as2 qui calcule le sinus de θ/2 à partir du sinus de θ :

Code:
as2(x) = x / sqrt(2 + sqrt(1 - x²))

propriété :
as2(x) = sin(arcsin(x)/2)


Donc si je compose cette fonction n fois avec elle même, j'obtiens le sinus de θ/(2^n). Le problème c'est que j'aimerai étudier un peu la limite quand n tend vers l'infini, et le fait qu'il y ai des imbrications de racine à chaque composition est handicapant.

J'ai un peu plus simple pour le cosinus :

Code:
ac2(x) = (x+1) / sqrt(2+2x)

propriété :
ac2(x) = cos(arccos(x)/2)


Mais il y a toujours un x sous une racine qui m'empêche de regarder la limite quand je compose la fonction avec elle-même plein de fois. Du coup je peux calculer une valeur approchée avec un ordinateur mais c'est tout.


--------------------------------------
Citation:
sans arccos et arcsin , je pense qu'il faut faire intervenir les fonctions développables en série entière


Peux tu être un peu plus explicite ? Ça m'intéresse.
Je ne suis pas en 1ère S, je suis en 2ème année de licence de maths, mais j'ai un niveau de 1ère S :mrgreen: là je commence à m'intéresser ...


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 14:43 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
Christophe23 a écrit:
y= cos(1/3arccos(-x+2kπ)/3 où k=0;1 ou 2
bonne vérification


Ben en simplifiant tu as ce que j'ai donne non ?

y = (sqrt(x^2-1)/8-x/8)^(1/3)+1/(4*(sqrt(x^2-1)/8-x/8)^(1/3))

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 14:56 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
Sinon, si ton but est de calculer la valeur de arcsin, je pense aussi que passer par un developpement en série entière est plus simple

http://mp.cpgedupuydelome.fr/cours.php? ... ction77655

Code:
arcsinx= \sum_{n=0}^{\infty}(2n)!/(2^n n!)^2 x^{2n+1}/(2n+1)


Tu calcule le reste de ta fonction R_m = \sum_{n=m+1}^{\infty}(2n)!/(2^n n!)^2 x^{2n+1}/(2n+1)

Tu cherches pour qu'elle m R_n est plus petit que epsilon (passage délicat)

Tu calcules \sum_{n=0}^{m}(2n)!/(2^n n!)^2 x^{2n+1}/(2n+1) et tu auras une valeur de arcsin a epsilon pret

Mais, le calcul risque d'etre long (faudra faire le code intelligement et ne pas calculer les factorielles et les mis a puissance a chaque fois mais réappeller les precedentes)

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 15:21 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
Code:
Fonction : Calcul_m

Entrée : epsilon,x

fonction a venir, si qqun a une idée elle est la bienvenue ^^



On suppose qu'on a la fonction qui nous calcul le m

Maintenant on va faire un programme qui calcule la somme

Code:
Fonction : Calcul_Somme

Entrée : m,x

#Initialisation
n = 0
nfactoriel = 1
2nfactoriel = 1
2puissancen = 1
xpuissance2n+1 = x

somme = 2nfactoriel/((2puissancen *  nfactoriel)*(2puissancen *  nfactoriel)) * xpuissance2n+1/(2n+1)


#Calcul de la somme

tant que n < m
n = n+1
nfactoriel = nfactoriel*n
2nfactoriel = 2nfactoriel*2n*(2n-1)
2puissancen = 2puissancen*2
xpuissance2n+1 = xpuissance2n+1 * x²

somme = somme + ( 2nfactoriel/((2puissancen *  nfactoriel)*(2puissancen *  nfactoriel)) * xpuissance2n+1/(2n+1))

fin de tant que

afficher somme

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Dernière édition par Tristan.T le 12 Fév 2012 16:43, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 12 Fév 2012 16:37 
Hors ligne
Très bavard(e)!

Inscription: 30 Aoû 2008 17:33
Messages: 412
@Tristan.T : Je n'avais pas compris que cette formule correspondait à ça. Peux-tu la blinder de parenthèses s'il-te-plaît ? Car moi je la comprends ainsi :

Code:
y = (((sqrt((x^2)-1)/8)-(x/8))^(1/3)) + 1/(4*(((sqrt((x^2)-1)/8)-(x/8))^(1/3)))


Et quand je la trace sur un graphique avec kmplot, elle n'est pas bonne (ça doit être un problème de parenthèses).

-------------------------------------------------------------------

Pour ton programme, je l'ai réécrit en C en corrigeant les erreurs d'initialisation. Il fonctionne bien. Voici la version en C :

Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long double carre(long double x) {
  return x*x;
}

long double mon_arcsinus(long double x, long m) {
  long n = 0;
  long double n_factoriel = 1;
  long double deux_n_factoriel = 1;
  long double deux_puissance_n = 1;
  long double x_puissance_2n_plus_1 = x;

  long double angle = 0;

  do {
    angle += (deux_n_factoriel*x_puissance_2n_plus_1) / (carre(deux_puissance_n * n_factoriel) * (2*n+1));
    ++n;
    n_factoriel *= n;
    deux_n_factoriel *= (2*n) * (2*n - 1);
    deux_puissance_n *= 2;
    x_puissance_2n_plus_1 *= x * x;
  } while (n <= m);

  return angle;
}

int main(int argc, char ** argv) {
  long double x = strtold(argv[1], NULL); //1er argument : valeur du sinus
  long m = strtol(argv[2], NULL, 10);     //2eme argument : precision

  long double angle = mon_arcsinus(x, m);

  printf("%.30Lf   (sinus passe en argument)\n", x);
  printf("%.30Lf   (arcsinus prédéfini)\n", asinl(x));
  printf("%.30Lf   (angle calculé)\n", angle);
  printf("%.30Lf   (différence entre les angles)\n", asinl(x) - angle);
  return EXIT_SUCCESS;
}


Pour le compiler, utiliser cette ligne de commande :
Code:
$ gcc -lm mon_arcsinus.c -o mon_arcsinus


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 16:41 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
euh, en relisant j'ai pas trouve d'erreur de parenthèses mais je n'ai jamais été bon pour ca ^^. je mets le résultat en mode TeX

Code:
y= \left(\frac{\sqrt{x^2-1}{8}-\frac{x}{8}\right)^{1/3}+\frac{1}{4\left(\frac{\sqrt{x^2-1}{8}-\frac{x}{8}\right)^{1/3}}


Ou, pour etre peut etre plus lisible :

Code:
u = \left(\frac{\sqrt{x^2-1}{8}-\frac{x}{8}\right)^{1/3}

y=u+1/(4u)


oui, je vien de me rendre compte que j'avais initialise les factorielles a 0 ... pas bon ca mais :shhh: pas un mot a mon prof de math ;)

Après oui j'ai laisse en pseudo-code parce que le C je l'ai un peu laisse de côté ces derniers temps au profit du Caml

Mais il manque toujours la fonction pour determiner le bon m ^^

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Haut
 Profil  
 
MessagePosté: 12 Fév 2012 17:48 
Hors ligne
Très bavard(e)!

Inscription: 30 Aoû 2008 17:33
Messages: 412
C'est pas très grave de déterminer le bon m. Je vais arrêter la recherche ici je dois travailler sur autre chose. Merci à toi Tristan.T et aux autres !

--------------------------------------------------------------

Je mets le code en C qui correspond à la façon que j'ai trouvée en premier :

Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long double sinus_du_demi_angle(long double sinus) {
  return sinus / sqrtl(2.0L + 2.0L * sqrtl(1.0L - sinus*sinus));
}

long double sinus_de_langle_divise_par_2_puissance_n(long double sinus, long n) {
  long i;
  for (i = 1; i <= n; ++i)
    sinus = sinus_du_demi_angle(sinus);
  return sinus;
}

long double mon_arcsinus(long double sinus, long n) {
  return powl(2.0, n) * sinus_de_langle_divise_par_2_puissance_n(sinus, n);
}

int main(void) {
  long double pi = acosl(-1.0L);
  long double angle = pi/6.0L;
  long double sinus = sinl(angle);

  long double angle_obtenu = mon_arcsinus(sinus, 1000);
  printf("%.40Lf (erreur en radians)\n", angle_obtenu - angle);

  return EXIT_SUCCESS;
}


Haut
 Profil  
 
MessagePosté: 17 Fév 2012 21:14 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
Bon, majorer le reste de cette série ne m'a pas l'air d'être quelque chose de trivial (si quelqu'un en a une je suis preneur du majorant et de la démonstration ^^)

Même si branch a bien préciser que de ne pas connaître l'erreur de sa fonction ... moi ça me gêne un peu de calculer une valeur approchée sans pouvoir fournir une quelconque précision sur l'erreur ...

Sinon j'ai eu une idée de programme calculant la fonction arcsin et pouvant fournir une erreur de la fonction.

En fait je me sert du fait que arcsin(x)=int(1/sqrt(1-x**3),t,0,x)

En effet : d(arcsin(x))/dx = 1/sqrt(1-x**2) et arcsin(0)=0

Et en partant de là on effectue un calcul approché de l'intégrale. Par exemple on peux utiliser la methode des rectangles et on dit que la valeur de notre arcsin est comprise entre la valeur donnée par les rectangles supérieures et celle donnée par les rectangles inférieurs
http://fr.wikipedia.org/wiki/Calcul_num%C3%A9rique_d%27une_int%C3%A9grale#Formules_simples

Ca nous donne ainsi un calcul de la fonction arcsin avec connaissance de l'erreur

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Haut
 Profil  
 
MessagePosté: 18 Fév 2012 12:51 
Hors ligne
Très bavard(e)!
Avatar de l’utilisateur

Inscription: 23 Déc 2011 11:56
Messages: 631
Localisation: Evry
C'est re-moi. Je me suis demandé à mon tour comment calculer la fonction cos (ou sin)

Car si ce qui a fait marcher le calcul de la fonction arcsin c'est qu'on savait calculer la dérivé de la fonction arcsin. On ne sait pas calculer la dérivée de la fonction cos qui est, je le rappelle, -sin.

On peut utiliser l'idée que j'avais eu pour donner la valuer de la fonction arcsin. En passant par un DES :

[TeX]\forall x \in \mathbb{R}, \cos(x) = \sum_{n = 0}^{+\infty} {( - 1)^n } \frac{{x^{2n} }}{{(2n)!}}[\TeX]
Si la majoration du DES de la fonction arcsin n'etait pas trivial, celui de la fonction cos est faisable et raisonnable.

En effet le DES de la fonction cos est une série alternée. On a [TeX]\left\lbrace\sum_{n = 0}^{+\infty} {( - 1)^n } \frac{{x^{2n} }}{{(2n)!}} - \sum_{n = 0}^{m} {( - 1)^n } \frac{{x^{2n} }}{{(2n)!}}\right\rbrace < \frac{{x^{2m} }}{{(2m)!}} [\TeX]

Autrement dit : On trouve le m tel que x^{2m}/(2m)! < epsilon et on a \sum_{n = 0}^{m} (-1)^n * x^{2n}/(2n)! = cos x à plus ou moins epsilon pres

J'espère avoir été clair :shifty:

_________________
Debian Wheezy/sid 3.2.0-3-686-pae Gnome3.4/XFCE4.8/Mate1.4

sktech norvegien
mon site (inutile)


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 35 messages ]  Aller à la page 1, 2  Suivante

Index du forum » Divers » Programmation


Qui est en ligne

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


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Aller à:  
Flux RSS Flux RSS Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
SEO
[ Time : 0.558s | 14 Queries | GZIP : Off ]