Ir ao conteúdo
  • Cadastre-se

Preciso de ajuda com aproximaçoes sucessivas em C++.


chapoollin

Posts recomendados

Pessoal, sou novo aqui no fórum e to precisando da ajuda de vocês. Preciso fazer esse programa: "Mostrar uma tabela de raízes quadradas e cúbicas de números inteiros que variam de 2 a 20, de1 em 1. Use o método das aproximações sucessivas até encontrar um erro menor que 0,00001. Usar as fórmulas:

Para a raiz quadrada: Xi + 1 = ( Xi + R / Xi ) / 2

Para a raiz cúbica: Xi + 1 = (2 . Xi³ + R ) / ( 3 . Xi² )"

Só a função que calcule as raízes ja é suficiente, essas formulas são do método Babilônico.

Aqui tem uma explicaçao de como funciona esse metodo :http://www.uff.br/dalicenca/images/stories/jornais/jornal12novo.pdf

Não sei nem começar, se alguem puder ajudar eu agradeço!!!

Me ajudaram com esse código aqui, mas ele é só pra raiz quadrada falta a raiz cúbica:

//byJackSSL
#include <iostream>

using namespace std;

class algoritmoBabilonicoDoJack{
private:
double retornaAproximacaoInicial(double num){
int i;
float resultX;
for(i = 0;i < 100; i++){
if(i * i >= (int)num){
break;
}
}
i-=1;
resultX = i;
return resultX;
}
public:
double retornaRaiz(double num,double aproxX){
double aprox = aproxX;
double a[100];
double b[100];
double e;
double result;
int k; //inteiro, para as iterações
k = 0;
a[k] = retornaAproximacaoInicial(num); //numero usado como aproximaçao inicial
b[k] = num/a[k];
e = (b[k] * b[k]) - num;
if(e < aprox){ //não inicia as iterações, número escolhido inicialmente é o procurado
result = b[k];
}
else{
for(k=1;k<100;k++){
a[k] = (a[k - 1] + b[k - 1])/ 2;
b[k] = num/a[k];
e = num - (b[k] * b[k]);
if(e < aprox){ //termina iterações
result = b[k];
break;
}
}
}
cout << "raiz quadrada de " << num << ": " << result << endl;
}
};

int main (void){
double aprox = 0.00001; //aproximação desejada ( 1 * 10^-5 )
int numero,i;

algoritmoBabilonicoDoJack algoritmoBabilonicoDoJack;

for(i=2;i<=20;i++){
algoritmoBabilonicoDoJack.retornaRaiz( (float)i, aprox);
}

system("pause");
return 0;
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!