Sherek Postado Junho 6, 2012 Denunciar Share Postado Junho 6, 2012 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 dissopackage 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+1double Xn1 = (Xn - (somaFx / somaFlinha));//CALCULAR Erro EcEc = (Xn - Xn1);//Comparando erroif (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);}} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Junho 7, 2012 Denunciar Share Postado Junho 7, 2012 JavaScript !== Java :) 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);
}
}
Link para o comentário
Compartilhar em outros sites
1 resposta 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.