Criar um algoritmo em Matlab, usando o método da bisseção, que ao digitar uma função f(x) = x^3 - 6*x^2 + 4*x + 12, e ao digitar o intervalo [a;b] na caixa de entrada, e se f(a)*f(b) < 0, termos uma raiz nesse intervalo, caso contrário será enviada uma mensagem, que não existe raiz nesse intervalo, e o algoritmo pedirá um novo intervalo. Se tudo correr bem forneça numa tabela as cinco primeiras iterações.
O método da bisseção é um método numérico para encontrar a raiz de uma função polinomial. Ele funciona dividindo o intervalo ao meio e selecionando um subintervalo em que a raiz deve estar. A solução é alcançada interativamente, reduzindo os valores após o palpite, que envolve a solução real.
Uma das vantagens desse método da bisseção é que ele sempre converge para a solução. No entanto, a taxa de convergência pode ser lenta. Além disso, escolher um palpite mais próximo à raiz não tem vantagem.
O método da bisseção pode ser útil em situações que outros métodos mais rápidos como o método de Newton-Raphson, não são aplicáveis ou requerem uma estimativa inicial. É importante notar que nenhum método é o melhor e cada um tem suas desvantagens. É frequentemente o caso de outro método pode ser usado para neutralizar a desvantagem.
ALGORITMO
% Define the function to find the root of
f = @(x) x^3 - 6*x^2 + 4*x + 12;
% Set the tolerance
tol = 1e-6;
% Prompt the user to enter the interval [a,b]
a = input('Enter the value of a: ');
b = input('Enter the value of b: ');
% Check if f(a)*f(b) < 0
if f(a)*f(b) < 0
% Calculate the first five iterations of the bisection method
iter = 0;
fprintf('iter a b c f(c)\n')
while iter < 5
c = (a+b)/2;
fprintf('%2d %10.6f %10.6f %10.6f %10.6f\n', iter, a, b, c, f(c))
if f(c) == 0 || (b-a)/2 < tol
break
end
iter = iter + 1;
if sign(f(c)) == sign(f(a))
a = c;
else
b = c;
end
end
else
% Display message and prompt user to enter new interval
disp('There is no root in this interval. Please enter a new interval.')
end
SOLUÇÃO
Intervalo [2;3]
Enter the value of a: 2
Enter the value of b: 3
iter a b c (raiz) f(c)
0 2.000000 3.000000 2.500000 0.125000
1 2.500000 3.000000 2.750000 -1.578125
2 2.500000 2.750000 2.625000 -0.755859
3 2.500000 2.625000 2.562500 -0.322021
GRÁFICO
SOLUÇÃO
Intervalo [4;5]
Enter the value of a: 4
Enter the value of b: 5
iter a b c (raiz) f(c)
0 4.000000 5.000000 4.500000 -0.375000
1 4.500000 5.000000 4.750000 2.796875
2 4.500000 4.750000 4.625000 1.087891
3 4.500000 4.625000 4.562500 0.326416
4 4.500000 4.562500 4.531250 -0.031708
SOLUÇÃO
Intervalo [-2;-1]
Enter the value of a: -2
Enter the value of b: -1
iter a b c (raiz) f(c)
0 -2.000000 -1.000000 -1.500000 -10.875000
1 -1.500000 -1.000000 -1.250000 -4.328125
2 -1.250000 -1.000000 -1.125000 -1.517578
3 -1.125000 -1.000000 -1.062500 -0.222900
4 -1.062500 -1.000000 -1.031250 0.397430
SOLUÇÃO
Intervalo [1;2]
Enter the value of a: 1
Enter the value of b: 2
Não existe raiz nesse intervalo.