Rechercher : dans
Par :

Java: racines d'une fonction

Dernière réponse le 16 jun 2004 à 03:13:05 bernardwil, le 13 jun 2004 à 11:48:30 
 Signaler ce message aux modérateurs

Bonjour
je dois résoudre comme exercice : rechercher les 5 racines (3positives et 2 négatives de la fonction:
f(x)= (tanx)²+x³-15

j'ai déjà fait cette partie de programme (la base des bases) mais je n'arrive pas à aller plus loin.

sauriez-vous m'aider svp?
ca doit paraitre simple pour la plupart d'entre vous mais je débute!!

merci d'avance.

voici mon programme (avec plein d'erreurs et incomplet!!) :


import java.awt.*;
import java.awt.event.*;

public class Racines extends Frame {
double a, b,c;
Button d;

public class ActionButton implements ActionListener{
public void actionPerformed(ActionEvent e{
repaint();

}}

public Racines(){
super("Recherche de racines");
setLayout(new FlowLayout());
setSize(700,700);
setLocation(50,50);
addWindowListener (new WindowAdapter(){
public void windowClosing (WindowEvent e)
{System.exit(0);}});



add(new Label("Racines de la fonction(tanx)²+x³-15"));
d=new Button("calcul");
add(d);
d.addActionListener(new ActionButton());
setVisible(true);
}

public void paint (Graphics g){
double racine,x1,x2,x3,x4,x5;
racine=(Math.tan(x))*(Math.tan(x))+x*x*x-15;

if(racine==0){
x1=();
x2=();
x3=();
x4=();
x5=();
g.drawString("racine 1="+x1,20,100);
g.drawString("racine 2="+x2,20,120);
g.drawString("racine 3="+x3,20,140);
g.drawString("racine 4="+x4,20,160);
g.drawString("racine 5="+x5,20,180);
}
else g.drawString("pas de racine",20,100);
}}

public static void main (String args[]){
new Racines();}

Meilleures réponses pour « java: racines d'une fonction » dans :
Quelques fonctions utiles VoirCette astuce vous montrera comment utiliser quelques fonctions très utiles en PHP: Retourne la longueur de la chaîne Utilisation Résultat Passe tous les caractères en minuscules. Utilisation Résultat Passe tous les caractères en...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Google - Fonction calculatrice VoirGoogle dispose d'une calculatrice intégrée. Pour l'utiliser, il suffit simplement d'entrer une expression dans le champ de saisie et de lancer la recherche ! Cette fonction est aussi accessible à partir de la barre Google ou des navigateurs...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
Java: Les méthodes VoirLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs...
Les fonctions de l'API Socket VoirLes fonctions des sockets en détail La fonction socket() La création d'un socket se fait grâce à la fonction socket() : int socket(famille,type,protocole) famille représente la famille de protocole utilisé (AF_INET pour TCP/IP utilisant une...

1

 Gallik, le 16 jun 2004 à 03:13:05

Slt,

Je pense que le prog suivant devrait suffire pour résoudre ton problème (je n'ai pas utilisé de frame, je fais tout dans l'invite de commandes) :

class Racines{
public static void main(String args[]){
double x=-Math.PI, fin=Math.PI, rac1=0, rac2=0;
while(x<fin){
rac2=Math.tan(x)*Math.tan(x)+x*x*x-15;
if((rac1<0 && rac2>0) || (rac1>0 && rac2<0)) System.out.println(x);
x+=.01;
rac1=rac2;
}
}

Je t'explique en gros : je choisis un intervalle d'étude (en l'occurence de -pi à pi), je construis une boucle (qui va scanner tout l'intervalle des x) sur laquelle je vais regarder quand la fonction change de signe (cela permet de savoir quand une fonction passe par 0) puisque je ne peux pas trouver la valeur exacte de la racine.

Et voilà le résultat qui s'affiche dans la fenêtre de l'invite de commandes :
-1.7815926535898172
-1.3315926535898168
1.298407346410185
1.9184073464101856
2.4284073464101765
Tu as bien 3 racines positives et 2 négatives.

Mon programme est très basique et tu peux facilement l'intégrer dans une Frame si tu veux présenter tes résultats de façon différente.

En espérant t'avoir aidé, bon courage pour la suite...

Répondre à Gallik