Ir ao conteúdo

C++ Como aplicar os Métodos da Bisseção, do Ponto Fixo, da Secante e de Newton-Raphs


Posts recomendados

Postado

Aplicar os métodos em:arctg x  = e^-4, intervalo I =[0,1], com erro absoluto inferior a E=10^-4. Solução: aproximadamente=0.606569

1) Método da Bisseção, 2)Método do Ponto Fixo, 3)Método da Secante e 4)Método de Newton-Raphson

ja tenho esse programa, gostaria de uma ajuda so para alterar ´para a função descrita acima. alguém pode ajudar

 

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
float funcao(float x){
float r;
r=((pow(x,5))+(2*pow(x,4))-(pow(x,3))+(pow(x,2))+(5*x)-1);
return r;
}
float iteracao(float x){
float r;
r=((pow(x,5))+(2*pow(x,4))-pow(x,3)+pow(x,2)-1)/(-5.0);
return r;
}
float derivada(float x){
float r;
r=(5*pow(x,4))+(8*pow(x,3))-(3*pow(x,2))+(2*x)+5;
return r;
}
int main(){
printf("Bem vindo(a)!\nEsse algoritmo esta organizado em 4 etapas 
sequenciais.\nSegue abaixo, o resumo das etapas\n");
printf("ETAPA 1 - METODO DA BISSECAO\nETAPA 2 - METODO 
DO PONTO FIXO\nETAPA 3 - METODO DA SECANTE\nETAPA 4 -
METODO DE NEWTON-RAPHSON\n");
system("pause");
system("cls");
{//início do método da bisseção
double x,xa,xb,erro,resul; int i=0;const float limite=0.0001;
printf("ETAPA 1 - METODO DA BISSECAO\ninsira o intervalo 
[xa;xb]\n");
printf("insira xa\n");scanf("%lf",&xa);
printf("insira xb\n");scanf("%lf",&xb);
printf("resultado\niteracao;raiz;funcao\n");
x=(xa+xb)/2.0;
erro=xa-xb;
while(fabs(erro)>limite){
if((funcao(xa)*funcao(x))<0.0){xb=x;
}
if((funcao(xa)*funcao(x))>0.0){xa=x;
}
x=(xa+xb)/2.0;
resul=funcao(x);
erro=xa-xb;
printf("%d;%0.8f;%0.8f\n",i,x,resul);i=i+1;
}printf("copie os resultados e cole em uma tabela para futura 
comparacao\nprecione qualque tecla para o proximo metodo\n");
system("pause");system("cls");
//fim fo método da bisseção
}
{//início do método do ponto fixo
int i=0;double t,t1,fx,err;const float lim=0,0001;
printf("ETAPA 2 - METODO DO PONTO FIXO\n");
printf("insira um numero real entre o intervalo 01\n");scanf("%lf",&t);printf("iteracao;raiz;funcao\n");
do{
t1=iteracao(t);
fx=funcao(t1);
err=t-t1;printf("%d;%0.8f;%0.8f\n",i,t1,fx);i=i+1;t=t1;
}while(fabs(err)>lim);printf("copie os resultados e cole em uma 
tabela para futura comparacao\nprecione qualque tecla para o proximo 
metodo\n");
system("pause");
system("cls");
}
{//início do método da secante
int contador=0;float c=0.0,c1,c2,errr,fx;const float 
prec=0.00000001;
printf("ETAPA 3 - METODO DA SECANTE\ninsira um numero 
real entre 0 e 1\n");scanf("%f",&c1);
printf("iteracao;raiz;funcao\n");
do{
c2=c1-((funcao(c1)/(funcao(c1)-funcao(c)))*(c1-c));errr=c1-
c2;//calculo do erro
fx=funcao(c2);contador = contador+1;
printf("%d;%0.8f;%0.8f\n",contador,c2,fx);
c=c1;c1=c2;
}while (fabs(errr)>prec);printf("copie os resultados e cole em uma 
tabela para futura comparacao\nprecione qualque tecla para o proximo 
metodo\n");
system("pause");
system("cls");
}//fim do método da secante
{//início do método de Newton-Raphson
int conta=0;float h0,h1,errrr,fu,limitee=0.0001;
printf("ETAPA 4 - METODO DE NEWTON-RAPHSON\ninsira um numero 
real entre 0 e 1\n");scanf("%f",&h0);printf("iteracao;raiz;funcao\n");
do{
h1=h0-(funcao(h0)/derivada(h0));
errrr=h0-h1;
fu=funcao(h1);
printf("%d;%0.8f;%0.8f\n",conta,h1,fu);
conta=conta+1;
h0=h1;
}while(fabs(errrr)>limitee);printf("copie os resultados e cole em 
uma tabela para futura comparacao\nprecione qualque tecla para o proximo 
metodo\n");
system("pause");
}
}

 

Postado

Bom dia!! 

alguém sabe como fazer essa alteração, preciso dessa ajuda.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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