Matemática, perguntado por rauldesouza20, 1 ano atrás

Considerando a função f(x) = 0,25x4 +2x3 – 7,5x2 + 3, determine dois de seus zeros, um existente entre os valores 0 e 1,5, e o outro existente entre os valores –1,51 e 0 de x, com ε = 0,10.

Soluções para a tarefa

Respondido por Usuário anônimo
3

Resposta:

As duas raízes são  -0.22709 e 0.235107

Explicação detalhada:

Fiz um algoritmo para calcular as raízes pelo método de bissecção em linguagem C++.

SUPONDO que  ε seja a tolerância, eu achei ela muito alta. Quanto menor a tolerância, melhor é a precisão. Então, defini  ε  com  ε = 0,0010. (a variável  ε está escrita como eps).  Intervalo inicial:  a = 0 e  b=-1.15

Número de iterações:  200

#include <iostream>

#include <iomanip>

#include <math.h>

#define IterM  200

#define eps 0.0001

float F(float x);    

float swap(float &x, float &y);

using namespace std;

int main(void)

{

float a, b;

cout << "Type value 'a': ";

cin >> a;

cout << "Type value 'b': ";

cin >> b;

if(F(a)* F(b) > 0)

{

cout << "Sem mudar o sinal";

system("pause");

}

else

{

float Iter;

cout << string(80,'_') << endl;

cout << setw(15) << "a | ";

cout << setw(15) << "b | ";

cout << setw(15) << "c | ";

cout << setw(15) << "Fc | ";

cout << setw(15) << "Fa | " << endl;

cout << string(80,'_') << endl;

Iter =0;

while(Iter <= IterM)

{

float c, F_a, F_c, t;

Iter+=1;

c = (a+b)/2.0;

F_a = F(a);

F_c = F(c);

 if(F(c) * F(a) > 0)

 {

 swap(a,c);

  }

 else

 {

  swap(b,c);

 }

 

   if((b-a) < eps)

      break;

 cout << setfill('_');

 cout << setw(15) << a;

 cout << setw(15) << b;

 cout << setw(15) << c;

 cout << setw(15) << F_a;

 cout << setw(15) << F_c << endl;

}

system("pause");

}

}

float F(float x)    

{

return (pow(x*0.25,4)+pow(2*x,3)-pow(7.5*x,2)+3) ;

}

float swap(float &x, float &y)

{

float t;

t=x;

x = y;

y = t;

return 0;

}

  Na imagem está a saída para os intervalos  (-1.51  ; 0)  e (0 ; 1.5)

Anexos:
Perguntas interessantes