Вы находитесь на странице: 1из 5

Computao Cientifica Exerccio 1 Resposta a Cdigo em Java preciso simples public class Precisao { public static void main(String[]args){

float a = 1; float s=2; float prec=0; while (s>1){ a=(a/2); s=(1+a); } prec=2*a; System.out.println("Resultado: "+ prec); } } Resultado: 1.1920929E-7 Cdigo em Java preciso dupla public class PrecisaoDupla { public static void main(String[]args){ double prec; double a = 1; double s=2; while (s>1){ a=(a/2); s=(1+a); } prec=2*a; System.out.println("Resultado: "+ prec); } }

Resultado: 2.220446049250313E-16 Resposta b

Resposta c c.1 Val =10 public class Usuario { public static void main(String[]args){ float a; float s; float prec; float val = 10; a=1; s= val +a; while (s>val){ a=(a/2); s=val+a; } prec=2*a; System.out.println("Resultado: "+ prec); } } Val=17 Resultado: 1.9073486E-6 Val = 10 Resultado: 9.536743E-7 Val=100 Resultado: 7.6293945E-6 Val =184 Resultado: 1.5258789E-5 Val=1000 Resultado: 6.1035156E-5

Val=1575 Resultado: 1.2207031E-4 Val=10000 Resultado: 9.765625E-4 Val=17893 Resultado: 0.001953125 A preciso alterada por conta da prpria preciso da mquina, quanto maior o valor mais tende a aumentar o acumulo dos erros, alm de gerar possiveis truncamentos do resultado.

2. Clculo de e^x algoritmo em java:

import javax.swing.JOptionPane; public class Serie { public static void main(String[]args){ String x; int base, expoente; double serie=0; boolean teste= false; //captura dados pelo usuario para o calculo da serie x =JOptionPane.showInputDialog(null, "Digite uma base"); base = Integer.parseInt(x); x = JOptionPane.showInputDialog(null, "Digite um expoente"); expoente = Integer.parseInt(x); //teste expoente para negativo, se for chama o metodo da serie duas vezes. if (expoente<0){ expoente = expoente*(-1); teste = true; } Taylor taylor = new Taylor();

serie = taylor.calculoTaylor(base, expoente); //corrige o valor da serie //tranforma a serie em sua segunda forma de resultado if(teste == true){ serie = 1/serie; } System.out.println(serie); if(teste == true){ expoente = expoente*(-1); serie = taylor.calculoTaylor(base, expoente); System.out.println(serie); } } }

public class Taylor { public double calculoTaylor(int base, int expoente){ int i, contFatorial, j, contVetor=0,h; float fatorial; double potencia=0; float[] simplificador = new float[99]; simplificador[0]=1; double serie=0; h=expoente; if(expoente < 0){ h = h*(-1); } for(i=1;i<=h;i++){ contFatorial= i; fatorial = 1; //fatorial while(contFatorial>1){ fatorial = contFatorial*fatorial; contFatorial--; if(fatorial>=(Math.pow(10,100000000))){ simplificador[contVetor] = fatorial; fatorial = fatorial/simplificador[contVetor];

contVetor ++; } } //Simplificao da potencia para igualar ao fatorial if(expoente<0){ for(j=0;j<=contVetor;j++){ potencia =(Math.pow(base,i))/simplificador[j]; //System.out.println(potencia); } } else{ for(j=0;j<=contVetor;j++){ potencia =(Math.pow(base,i))/simplificador[j]; } } serie = serie + (potencia/fatorial); } serie = serie +1; return serie; } }
Com a alterao realizado pelo item b, a srie de Taylor pode ser calculada para qualquer valor dessa forma o critrio de parada o prprio fim do clculo da srie.

Вам также может понравиться