Calculo Exponencial

11 respostas
R

[b]gostaria de saber, com faço para calcular o exponencial sem o uso do API java?

11 Respostas

R

sem o Math, acho que não existe.

R

Realizando multiplicações consecutivas?

P

Substitui a expressão por uma série de Taylor e calcula o numero de termos necessários.

T

O que você chama de “exponencial”?

  1. Efetuar uma exponenciação (x elevado a y)
  2. Efetuar uma exponenciação, mas a potência é inteira (exemplo: x elevado a 13)
  3. Elevar o número “e” (2,71828182845904523536028747135…) a uma determinada potência (e elevado a x)

No terceiro caso, como o peczenyj disse, basta achar uma aproximação usando uma série - como a série de Taylor mencionada. (Ela converge relativamente rápido, mas acho que há séries que convergem mais rápido ainda).
No primeiro caso, você precisa de saber a fórmula para o caso 3, e também achar a fórmula para calcular logaritmos usando aproximações, já que x elevado a y = exp (y * ln (x)).
No segundo caso, basta saber efetuar multiplicações sucessivas. Você pode fazer isso pelo método braçal (exemplo: para calcular 1.00001 elevado a 1000 você multiplicaria o número por ele mesmo 1000 vezes) ou usando um método um pouco mais esperto, que economiza multiplicações (sabendo que 1000 = [telefone removido] em binário, dá para ter uma pista do que deve ser feito).

P

Basta procurar um algoritmo em algum livro de calculo numérico. O mais famoso é o Numerical Recipes que tem codigos em Fortran e C (respectivamente).

Ou veja o codigo do projeto jakarta, por exemplo:

http://jakarta.apache.org/commons/math/

A

Gostaria de saber como utilizar o Math.pow.

Alguem poderia me dar um exemplo pratico?

T

POW?

int a = 2;
	    int b = 3;
	    
	    double c = Math.pow(a, b);
	    
	    System.out.println("Resultado: " + c);
A

é mais simples do que eu imaginava.

grato companheiro!

T

Alexandre Henrique:
é mais simples do que eu imaginava.

grato companheiro!

Todos os métodos da classe Math são simples. Simples de usar, claro, nem imagino como eles fazem internamente… hehehe

Qualquer dúvida, estamos aqui para ajudar

F
thegoergen:
Alexandre Henrique:
é mais simples do que eu imaginava.

grato companheiro!

Todos os métodos da classe Math são simples. Simples de usar, claro, nem imagino como eles fazem internamente... hehehe

Qualquer dúvida, estamos aqui para ajudar

Math.pow só aceita variáveis do tipo double ou pode usar do tipo int ou float? pergunto porque tentei com int, float e deu erro... :shock:

package Exercício;

public class Prot1 {
	int a = 5, b = 5;
	double pot;
	public Prot1(){
	}
	public double bPot(){
		return pot = Math.pow(a,b);
	}
	public static void main(String args[]){
		Prot1 x = new Prot1();
		x.bPot();
		System.out.println("5 e 5 é = " + x.pot);
	}

}
F

Resolvido... como a classe Math só retorna double.. só fazer um casting que fica tudo certo... :shock:

package Exercício;

public class Prot1 {
	int a = 5, b = 5;
	int pot;
	public Prot1(){
	}
	public int bPot(){
		return pot = (int)Math.pow(a,b);
	}
	public static void main(String args[]){
		Prot1 x = new Prot1();
		System.out.println("5 e 5 é = " + x.bPot());
	}

}
Criado 17 de outubro de 2006
Ultima resposta 26 de mar. de 2008
Respostas 11
Participantes 8