Java: racines d'une fonction

Fermé
bernardwil - 13 juin 2004 à 11:48
 Gallik - 16 juin 2004 à 03:13
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();}
A voir également:

1 réponse

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...
1