Sherek Postado Junho 6, 2012 Denunciar Share Postado Junho 6, 2012 (editado) 1. Entrar com o grau do polinômio; 2. Entrar com o coeficiente em função do grau; 3. Derivada de F(x); 4. Atribuir o primeiro valor de Xn; 5. Rodar o programa 5. Apresentar o Polinomio; 5. Apresentar a Raiz; 5. Apresentar o numero de iterações; 6. Quer calcular mais raiz? 7. Quer fazer uma nova função? ------//------o programa só da um loop e encerra voltando pra "decisao". não consigo ver o porque disso package trabalhomatematica;import javax.swing.JOptionPane;import java.util.*;import java.util.Scanner; import java.text.DecimalFormat;public class TrabalhoMatematica { public static void main(String[] args) { int grau = 0, decisao = 0, j = 0; int cont = 1, base = 0, n = 10, con = 0,exp=-4; double Ec = 0; double somaFx = 0, somaFlinha = 0; double Ea = 0.000001; //Math.pow(n , exp); DecimalFormat Deci = new DecimalFormat("0.0000"); do { String Grau = JOptionPane.showInputDialog("Digite o maior grau da sua funçao: "); grau = Integer.parseInt(Grau); if (grau < 2) { JOptionPane.showMessageDialog(null, "O grau do Polinomio deve ser pelo menos 2\nTente de novo"); } else { con = con + 3; } } while (con == 0); double[] vFlinhax = new double[grau+1];//F(x) double[] vFx = new double[grau + 1]; double[] vBase = new double[grau + 1]; for (int i = 0; i <= grau; i++) { String Base = JOptionPane.showInputDialog("Digite o 'b' na funcao bX^" + i + "\nNao se esqueca do Sinal !!"); vBase = Integer.parseInt(Base); } do{ String Chute = JOptionPane.showInputDialog("Chute um valor para X: "); int x = Integer.parseInt(Chute); double Xn = x; for (int i = 0; i <= grau; i++) { vFx = (vBase * (Math.pow(Xn, i))); somaFx = somaFx + vFx; }//F'(x) for (int i = grau; i > 0; i--) { vFlinhax = (i * vBase * (Math.pow(Xn, (i - 1)))); somaFlinha = somaFlinha + vFlinhax; } do {// CALCULAR Xn+1 double Xn1 = (Xn - (somaFx / somaFlinha));//CALCULAR Erro Ec Ec = (Xn - Xn1); //Comparando erro if (Ec <= Ea) { j = 0; } else { cont++; j = 3; Xn = Xn1; } } while(j == 0); JOptionPane.showMessageDialog(null, "Raiz do polinomio para X = " + x + " é: " + Xn + "\nNumero de interacoes: " + cont); //exibiçao de F(x) String Fx = ""; for (int a = grau; a >= 0; a--) { Fx += String.valueOf(vFx[a]) + " | "; } //exibiçao de F'(x) String Flinha = ""; for (int a = grau; a > 0; a--) { Flinha += String.valueOf(vFlinhax[a]) + " | "; } JOptionPane.showMessageDialog(null, "F(x) = " + Fx + "\nF'(x) = " + Flinha + "\n soma F(x): " + somaFx + "\nsoma F'(x): " + somaFlinha); decisao = JOptionPane.showConfirmDialog(null, "Deseja calcular outra raiz? "); somaFx = 0; } while (decisao == 0); }} Editado Junho 6, 2012 por Sherek Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Sherek
1. Entrar com o grau do polinômio;
2. Entrar com o coeficiente em função do grau;
3. Derivada de F(x);
4. Atribuir o primeiro valor de Xn;
5. Rodar o programa
5. Apresentar o Polinomio;
5. Apresentar a Raiz;
5. Apresentar o numero de iterações;
6. Quer calcular mais raiz?
7. Quer fazer uma nova função?
------//------
o programa só da um loop e encerra voltando pra "decisao". não consigo ver o porque disso
package trabalhomatematica;
import javax.swing.JOptionPane;
import java.util.*;
import java.util.Scanner;
import java.text.DecimalFormat;
public class TrabalhoMatematica {
public static void main(String[] args) {
int grau = 0, decisao = 0, j = 0;
int cont = 1, base = 0, n = 10, con = 0,exp=-4;
double Ec = 0;
double somaFx = 0, somaFlinha = 0;
double Ea = 0.000001; //Math.pow(n , exp);
DecimalFormat Deci = new DecimalFormat("0.0000");
do {
String Grau = JOptionPane.showInputDialog("Digite o maior grau da sua funçao: ");
grau = Integer.parseInt(Grau);
if (grau < 2) {
JOptionPane.showMessageDialog(null, "O grau do Polinomio deve ser pelo menos 2\nTente de novo");
} else {
con = con + 3;
}
} while (con == 0);
double[] vFlinhax = new double[grau+1];
//F(x)
double[] vFx = new double[grau + 1];
double[] vBase = new double[grau + 1];
for (int i = 0; i <= grau; i++) {
String Base = JOptionPane.showInputDialog("Digite o 'b' na funcao bX^" + i + "\nNao se esqueca do Sinal !!");
vBase = Integer.parseInt(Base);
}
do{
String Chute = JOptionPane.showInputDialog("Chute um valor para X: ");
int x = Integer.parseInt(Chute);
double Xn = x;
for (int i = 0; i <= grau; i++) {
vFx = (vBase * (Math.pow(Xn, i)));
somaFx = somaFx + vFx;
}
//F'(x)
for (int i = grau; i > 0; i--) {
vFlinhax = (i * vBase * (Math.pow(Xn, (i - 1))));
somaFlinha = somaFlinha + vFlinhax;
}
do {
// CALCULAR Xn+1
double Xn1 = (Xn - (somaFx / somaFlinha));
//CALCULAR Erro Ec
Ec = (Xn - Xn1);
//Comparando erro
if (Ec <= Ea) {
j = 0;
} else {
cont++;
j = 3;
Xn = Xn1;
}
} while(j == 0);
JOptionPane.showMessageDialog(null, "Raiz do polinomio para X = " + x + " é: " + Xn + "\nNumero de interacoes: " + cont);
//exibiçao de F(x)
String Fx = "";
for (int a = grau; a >= 0; a--) {
Fx += String.valueOf(vFx[a]) + " | ";
}
//exibiçao de F'(x)
String Flinha = "";
for (int a = grau; a > 0; a--) {
Flinha += String.valueOf(vFlinhax[a]) + " | ";
}
JOptionPane.showMessageDialog(null, "F(x) = " + Fx + "\nF'(x) = " + Flinha + "\n soma F(x): " + somaFx + "\nsoma F'(x): " + somaFlinha);
decisao = JOptionPane.showConfirmDialog(null, "Deseja calcular outra raiz? ");
somaFx = 0;
} while (decisao == 0);
}
}
Editado por SherekLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.