#include <math.h>
#include <stdlib.h>
#include <cstdlib>
using namespace std;
float funcao(float var){
return (pow(var, 3))-2*var;
}
int main(){
float a, b, aux, Erro = 0.01, iteracoes, xm, xx, Errox, Raiz;
int i= 0, k, j;
double fa, fx, fax;
printf("\t\t\tALGORITMO DA BISSECCAO\n\n");
printf("\t\t\tAlunos: Henrique, Dhejck");
printf("\n\n\tDigite o intervalo A: ");
scanf("%f", &a);
printf("\n\tDigite o intervalo B: ");
scanf("%f", &b);
//calculando a quantidade de iterações de acordo com a formula
iteracoes = (log10(b-a)-log10(Erro))/log10(2);
printf("\n\tNumero de Interacoes = %.1f \n\n", iteracoes);
printf("\nITERACOES: A(n) B(n) X(m) Erro F(a) F(xm) F(a).F(xm)");
for(int i=i+1; i <= iteracoes +1; i++){
k = i+0;
xm = (a+b)/2;
Errox = b-a;
printf("\nIteracao: %d %.4f %.4f %.4f %.4f %.2f %.2f %.2f", i, a, b, xm, Errox, fa= funcao(a), fx= funcao(xm), fax= funcao(a) * funcao(xm));
if(funcao(a)* funcao(xm) < 0){
a = a;
b = xm;
}
else{
a = xm;
b = b;
}
}
printf("\n\n\tRAIZ = [%.4f]: apos %d Iteracoes com 4 casas decimais\n\n\n", xm, k);
printf("\n\n\Q1= %f", funcao(a));
//printf("\n\nFunc = %.5f\n\n",func(a));
system("PAUSE");
return (0);
}
EM LINGUAGEM JAVA
package trabalho.pkg2.bissecao;
import java.io.PrintStream;
import static java.lang.Math.log10;
import static java.lang.Math.pow;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double a, b, xm, Erro= 0.01, iteracoes, Errox;
double fa, fxm;
int i = 0, k = 0, cont = 0;
System.out.println("\tALGORITMO DA BISSECÇÃO:");
System.err.println("\tAlunos: Henrique\n");
System.out.printf("Digite o intervalo A: ");
a = input.nextDouble();
System.out.printf("Digite o intervalo B: ");
b = input.nextDouble();
xm = (a+b)/2;
iteracoes = (((log10(b-a))- log10(Erro)) / log10(2));
System.out.printf("\nNúmero de iteracoes = %.1f \n",iteracoes);
System.err.println("\tIterações: A(n) B(n) X(n) Erro(n) f(a) F(xm)");
if(xm == 0){
System.out.println("Raiz = 0 ou possui mais de 1 raiz");
}else{
for(i= i+0; i <= iteracoes +1; i++){
k = i+0;
xm = (a+b)/2;
Errox = b-a;
System.out.printf("\nIterações: %d %.2f %.2f %.2f %.2f %.2f %.2f", i, a, b, xm, Errox, fa= funcao(a), fxm=funcao(a)*funcao(xm));
if(funcao(a)* funcao(xm) < 0){
a = a;
b = xm;
}else{
a = xm;
b = b;
}
}
}
System.err.println("Raiz = "+xm+" após "+k+" iterações:\n");
}
public static double funcao(double x){
return pow(x, 3)-2*x;
}
}
Nenhum comentário:
Postar um comentário