GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Calculo Exponencial


#1

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


#2

sem o Math, acho que não existe.


#3

Realizando multiplicações consecutivas?


#4

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


#5

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).


#6

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/


#7

Gostaria de saber como utilizar o Math.pow.

Alguem poderia me dar um exemplo pratico?


#8

POW?

        [code]int a = 2;
    int b = 3;

    double c = Math.pow(a, b);

    System.out.println("Resultado: " + c);[/code]

#9

é mais simples do que eu imaginava.

grato companheiro!


#10

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


#11

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);
	}
}

#12

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

#13