Calculo Exponencial

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

sem o Math, acho que não existe.

Realizando multiplicações consecutivas?

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

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 = 1111101000 em binário, dá para ter uma pista do que deve ser feito).

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/

Gostaria de saber como utilizar o Math.pow.

Alguem poderia me dar um exemplo pratico?

POW?

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

é mais simples do que eu imaginava.

grato companheiro!

[quote=Alexandre Henrique]é mais simples do que eu imaginava.

grato companheiro![/quote]

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

[quote=thegoergen][quote=Alexandre Henrique]é mais simples do que eu imaginava.

grato companheiro![/quote]

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[/quote]

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:

[code]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);
}

}[/code]

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

[code]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());
}

}[/code]