Página Inicial do Fórum > Java Básico

Função logarítmica



Criar novo tópico   Responder tópico


  1. xFate
    Posts:7


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Pessoal,

    Tenho a seguinte situação: dou um número inicial x e um número final y, por exemplo,500 e 6000. A minha função precisa criar uma curva de crescimento, mas que não seja linear (se assim fosse, eu só definiria uma constante e ia multiplicando o numero pelo seu anterior). A curva pode ter crescimento rápido (cresce com a curva virada pra cima) ou pode ter um crescimento lento (cresce com a curva virada pra baixo).

    Então meu método seria algo assim:



    Ele retornia um array de 'quantElementos' posições, com os números que a função criaria, onde o 'fatorCrescimento' define se o crescimento é rápido ou lento.

    Eu suponho que seja uma função logarítmica, já que as do primeiro grau fazem retas e as do segundo grau parábolas.

    Agradeço aos matemáticos de plantão

    EDIT: Talvez a função deva ser exponencial, conforme o seguinte artigo da wikipedia: http://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_exponencial

    Perdoem a ignorância matemática... Valeu




  1. manuel.leiria
    Posts:378


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    xFate
    Pessoal,

    Tenho a seguinte situação: dou um número inicial x e um número final y, por exemplo,500 e 6000. A minha função precisa criar uma curva de crescimento, mas que não seja linear (se assim fosse, eu só definiria uma constante e ia multiplicando o numero pelo seu anterior). A curva pode ter crescimento rápido (cresce com a curva virada pra cima) ou pode ter um crescimento lento (cresce com a curva virada pra baixo).

    Então meu método seria algo assim:



    Ele retornia um array de 'quantElementos' posições, com os números que a função criaria, onde o 'fatorCrescimento' define se o crescimento é rápido ou lento.

    Eu suponho que seja uma função logarítmica, já que as do primeiro grau fazem retas e as do segundo grau parábolas.

    Agradeço aos matemáticos de plantão

    EDIT: Talvez a função deva ser exponencial, conforme o seguinte artigo da wikipedia: http://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_exponencial

    Perdoem a ignorância matemática... Valeu



    Se queres uma curva de crescimento lento tens de usar a função exponencial, caso contrário usas a função logaritmica.Qual é exactamente a tua dúvida?
    _________________
    Manuel Leiria

    --------------
    Peace cannot be kept by force; it can only be achieved by understanding.
    Albert Einstein




  1. xFate
    Posts:7


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    A dúvida é: qual função usar e qual uma possível implementação de um método com a assinatura que eu sugeri?




  1. manuel.leiria
    Posts:378


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    e a variável como é que funciona? a partir de que valor é que a curva deixa de ter um crescimento lento para ter crescimento rápido?
    _________________
    Manuel Leiria

    --------------
    Peace cannot be kept by force; it can only be achieved by understanding.
    Albert Einstein




  1. xFate
    Posts:7


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    O que eu pensei nessa variavel:

    Se fosse uma função linear, seria a inclinação da reta... por exemplo, eu quero que minha curva cresça num fator de 1,2, ou num valor de 1,8. Podemos então arguir que o crescimento no segundo caso seria mais rápido do que no primeiro.

    Notei que você comentou que para 'nível' de crescimento, devo usar uma função diferente, o que me deixou preocupado, já que o ideal seria um valor double qualquer que se fosse baixo seria lento, se fosse alto seria rápido.




  1. xFate
    Posts:7


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Manuel,

    Andei pensando e uma função exponencial resolve meu problema. Você pode me ajudar a implementar?

    Uma possível assinatura do método:



    Abraços




  1. manuel.leiria
    Posts:378


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    xFate
    Manuel,

    Andei pensando e uma função exponencial resolve meu problema. Você pode me ajudar a implementar?

    Uma possível assinatura do método:



    Abraços



    Seria qualquer coisa assim



    Mas há aqui alguns problemas, nomeadamente as divisões de inteiros para encontrar o step.
    _________________
    Manuel Leiria

    --------------
    Peace cannot be kept by force; it can only be achieved by understanding.
    Albert Einstein




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico