Java - Ayuda para desarrollar ecuaciones cubicas

 
Vista:

Ayuda para desarrollar ecuaciones cubicas

Publicado por Wilder Linares Agip (1 intervención) el 21/03/2015 02:35:11
Como estan, es la primara ves que participo en estos foros y espero puedan resolver una duda, ase algunos meses empece a programar en java solo como un pasatiempo sin embargo mientras escribia el esqueleto de un programa para desarrollar ecuaciones cubicas mediante la formula de Cardamo me di cuenta que, la formula en los valores "X1" y "X2" siempre me arroja como resultado el valor "1" y no se a que se debe esto.
Este es el esqueleto del programa, en relidad es muy basico solo ingresar datos, procesar en la formula y dar el reultado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//espero su ayuda
 
package ecuaciones;
import java.util.Scanner;
 
public class Uso_Ecuaciones {
 
	public static void main(String[] args) {
 
		Scanner ingresar=new Scanner(System.in);
 
		String a,b,c,d;
 
                double valorA,valorB,valorC,valorD;
 
		double p,q;
 
		double delta;
 
		double X1,X2,X3, resul;
 
		System.out.println("Ingrese los coeficientes de la ecuacion: ");
		System.out.println("Ax^3 + Bx^2 + Cx + D");
 
		//pedir datos
 
		System.out.println("Ingrese el primer coeficiente, A: ");
		a=ingresar.nextLine();
		valorA=Double.parseDouble(a);
		System.out.println("Ingrese el segundo coeficiente, B: ");
		b=ingresar.nextLine();
		valorB=Double.parseDouble(b);
		System.out.println("Ingrese el tercer coeficiente, C: ");
		c=ingresar.nextLine();
		valorC=Double.parseDouble(c);
		System.out.println("Ingrese el cuarto coeficiente, D: ");
		d=ingresar.nextLine();
		valorD=Double.parseDouble(d);
 
		double coefA=(valorB/valorA);
		double coefB=(valorC/valorA);
		double coefC=(valorD/valorA);
 
		//operacion1
 
		p=(3*coefB-Math.pow(coefA, 2))/3;
 
		q=((2*Math.pow(coefA, 3))-(9*coefA*coefB)+(27*coefC))/27;
 
		//discriminante
 
		delta=Math.pow((q/2),2)+Math.pow((p/3),3);
 
		//Resultado
		//Es en esta formula donde creo que esta el error
 
		X1=(Math.pow((-q/2)+(Math.sqrt(delta)), 1/3));
		X2=(Math.pow((-q/2)-(Math.sqrt(delta)), 1/3));
		X3=(coefA/3);
 
		resul=X1+X2-X3;
 
		//esta parte la escribi con la finalidad de ver en que parte de la formula fallaba
 
		System.out.println("El resultado es: "+ resul);
 
		System.out.println("parte1: "+ X1);
		System.out.println("parte2: "+ X2);
		System.out.println("parte3: "+ X3);
		System.out.println("coefA: "+ coefA);
		System.out.println("coefB: "+ coefB);
		System.out.println("coefC: "+ coefC);
		System.out.println("p: "+ p);
		System.out.println("q: "+ q);
		System.out.println("discriminante: "+ delta);
 
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda para desarrollar ecuaciones cubicas

Publicado por Just A KlillaROM (1 intervención) el 30/08/2018 05:21:40
Hola Wilder que tal... me tomé la molestia de mejorar el programa que estructuraste y pues no se si la verdad veas este mensaje. Pues ya hace poco mas de tres años publicaste este post y sin ninguna respuestas hasta el día de hoy. Y pues la verdad, me ahorraste muchisimo tiempo y la única forma que siente que te puedo regresar el favor es pasándote tu mismo código arreglado por mi :). Siendo buen programador y buena persona con ustedes: la comunidad
Saludos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package sample;
 
//importaciones de librerias Java
import javafx.application.Application;
import javafx.stage.Stage;
import java.util.Scanner;
 
//Clase Main
public class Main extends Application {
 
    //Author Linares Agip - https://www.lawebdelprogramador.com/foros/Java/1487495-Ayuda-para-desarrollar-ecuaciones-cubicas.html#i1487495
    //Bug Fixer Paul Valdez -epaul
    @Override
    public void start(Stage primaryStage) throws Exception{
        //Escaneo de teclado
        Scanner teclado=new Scanner(System.in);
 
        //Declaracion de variables
        double a, b, c, d, p, q, X1, X2, X3, delta, resul, ax1, ax2, var1 = 1, var3 = 3, var13 = (var1/var3);
 
        //Introduccion
        System.out.println("Ingrese los coeficientes de la ecuacion: ");
        System.out.println("Ax^3 + Bx^2 + Cx + D");
 
        //Ingreso de datos
        System.out.println("Ingrese el primer coeficiente, A: ");
        a = Double.parseDouble(teclado.nextLine());
        //a=ingresar.nextLine();
        //valorA=Double.parseDouble(a);
        System.out.println("Ingrese el segundo coeficiente, B: ");
        b = Double.parseDouble(teclado.nextLine());
        System.out.println("Ingrese el tercer coeficiente, C: ");
        c = Double.parseDouble(teclado.nextLine());
        System.out.println("Ingrese el cuarto coeficiente, D: ");
        d = Double.parseDouble(teclado.nextLine());
 
        //Primera Operacion
        double coefA=(b/a), coefB=(c/a), coefC=(d/a);
        p=(3*coefB-Math.pow(coefA, 2))/3;
        q=((2*Math.pow(coefA, 3))-(9*coefA*coefB)+(27*coefC))/27;
 
        //Discriminante
        delta=Math.pow((q/2),2)+Math.pow((p/3),3);
        System.out.println("delta="+delta);
 
        //Segunda Opeacion y verificacion de signos positivos o negativos
        ax1 = (-q/2) + Math.sqrt(delta);
        if (ax1 > 0)
            {
                X1=Math.pow(ax1,var13);
            }
            else
            {
                ax1 = ax1*-1;
                X1=Math.pow(ax1,var13);
                X1= X1*-1;
            }
        ax2 = (-q/2) - Math.sqrt(delta);
        if (ax2 > 0)
            {
                X2=Math.pow(ax2,var13);
            }
            else
            {
                ax2 = ax2*-1;
                X2=Math.pow(ax2,var13);
                X2= X2*-1;
            }
        X3=(coefA/3);
        resul=X1+X2-X3;
 
        //Comprobacion de Respuestas
        System.out.println("coefA: "+ coefA);
        System.out.println("coefB: "+ coefB);
        System.out.println("coefC: "+ coefC);
        System.out.println("discriminante: "+ delta);
        System.out.println("p: "+ p);
        System.out.println("q: "+ q);
        System.out.println("parte1: "+ X1);
        System.out.println("parte2: "+ X2);
        System.out.println("parte3: "+ X3);
        System.out.println("");
 
        //Respuesta
        System.out.println("El resultado es: "+ resul);
    }
    public static void main(String[] args) {
        launch(args);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda para desarrollar ecuaciones cubicas

Publicado por Samuel (1 intervención) el 29/09/2018 03:02:23
Disculpa este programa solo arroja un valor de los 3 que son, existe algún programa que pueda arrojar los 3 valores?, podrías ayudarme con eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar