Jump to content

Raíz real de um número positivo


Tomas
 Share

Recommended Posts

Boas pessoal ainda sou um noob no que toca à programação e tenho aqui um problema a resolver, ora aqui vai:

Considere o problema de calcular uma aproximação da raiz real de um número positivo n e os seguintes algoritmos:

Algoritmo Guess&Check : Calcular a raiz inteira de n, i.e., o maior numero inteiro cujo quadrado não ultrapassa n. Seja x esse valor. Considerar o intervalo [min,max] com min=x e max=x+1. Verificar se min é uma aproximação suficientemente boa da raiz de n (i.e., se |min-n/min|< epsilon*min ). Se sim, está encontrado o valor. Senão, verificar se ((max+min)/2)2 < n . Em caso positivo repetir o processo agora para o intervalo [(max+min)/2,max] e, caso contrário, com o intervalo [min,(max+min)/2].

Algoritmo de Newton : Considere a sucessão definida por: t0=n, ti+1=1/2 * (ti+n/ti). Calcular os elementos da sucessão t0, t1, t2... enquanto |ti -n/ti |> epsilon*ti . Parar quando se encontra o primeiro elemento que não satisfaz esta condição.

Implemente cada um destes algoritmos numa classe Java e teste-os com diferentes valores de n e epsilon. Inclua em cada algoritmo um contador que conte o número de iterações executadas por cada algoritmo.

Todas as ajudas são bem vindas uma vez que estou completamente à deriva com isto ...

Link to comment
Share on other sites

Pessoal tive a fazer o código para o primeiro algoritmo e deu-me algo do género, é mais do que provavél que estejam muitas coisas mal, conto convosco para me ajudar  🙂 .

//implementacao do algoritmo guess&check

    public static void main raiz inteira de n(String[] args) {

    int n, int y, int min, int max, int contador;

    int n=10 ;
    int min=x ;
    int max=x+1 ;
    int contador = 0 ;

    If (|min-n/min|< int y*min){
        int contador=contador+1
        System.out.println ("o valor da raiz inteira de "+ x)
        }

            Else ((max+min)/2)^2 < n){
            int contador=contador+1
            System.out.println ("o valor da raiz inteira de "+ x)
            }

    For ((max+min)/2)^2 > n;[(max+min)/2,max]); x++ ) { 
          int contador=contador+1
          System.out.println ("o valor da raiz inteira de "+ x)
          } 

           Else [min,(max+min)/2; x++] {      
           int contador=contador+1
           System.out.println ("o valor da raiz inteira de "+ x)

           }

}

Estou a usar o NetBeans no Windows para fazer os códigos.

Link to comment
Share on other sites

Eu sei que tem erros, eu próprio admiti no meu 1º post que era um noob.

Gostava era que me ajudassem a fazer os ciclos, porque isso das maiusculas e minusculas corrige-se com facilidade ao correr o código no terminal do ubuntu.

Já agora porque é que convem ficar só main no nome do código ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.