miniaturadaimagem|Paolo Ruffini Algoritmo de Briot-Ruffini, por vezes denominado apenas como regra de Ruffini, é um método de resolução de frações polinomiais, criado por Paolo Ruffini. Esse algoritmo consiste em efetuar a divisão fazendo cálculos apenas com coeficientes e só serve para divisões de um polinômio por um binômio da forma .
As divisões de polinômios por binômios, como por exemplo: , e , surgem em problemas de matemática mais frequentemente do que quaisquer outras divisões de polinômios e desempenham papel importante na pesquisa de zeros de funções e na resolução de equações.
Exemplo Divisão de um Polinômio por x − a
Seja:
Queremos dividir P(x) por D(x) usando a regra de Ruffini. Primeiro observamos que D(x) não é um binômio da forma x − a, mas da forma x + a. Então reescrevemos D(x) deste modo:
Agora aplicamos o algoritmo:
1. Transcrevemos os coeficientes e a. Note que, como P(x) não contém um coeficiente para x, então escrevemos 0: | 2 3 0 -4
-1 |
2. Passe o primeiro coeficiente | 2 3 0 -4
-1 |
| 2
3. Multiplique-o por a: | 2 3 0 -4
-1 | -2
| 2
4. Some os valores da coluna: | 2 3 0 -4
-1 | -2
| 2 1
5. Repita os passos 3 e 4 até a última coluna: | 2 3 0 -4
-1 | -2 -1 1
| 2 1 -1 -3 | {coeficientes} {resto}
, onde
e
isto é,
Exemplo de código fonte import java.util.Scanner;
public class BriotRuffiniAlgorithm {
public static void main(String[] args) { Scanner input = new Scanner(System.in);
System.out.print("Digite o grau do polinômio: "); int degree = input.nextInt();
double[] coefficients = new double[degree + 1]; System.out.println("Digite os coeficientes do polinômio, do termo de maior grau ao termo de menor grau:"); for (int i = degree; i >= 0; i--) { System.out.print("x^" + i + ": "); coefficients[i] = input.nextDouble();
System.out.print("Digite o valor de x para avaliar o polinômio: "); double x = input.nextDouble();
double[] result = briotRuffini(coefficients, x);
System.out.print("Resultado: "); for (int i = 0; i < result.length; i++) { System.out.print(result[i]); if (i < result.length - 1) { System.out.print(", ");
input.close();
public static double[] briotRuffini(double[] coefficients, double x) { int degree = coefficients.length - 1; double[] result = new double[degree];
result = coefficients[degree]; for (int i = degree - 1; i > 0; i--) { result[i] = coefficients[i] + x * result[i - 1];
return result;
Ver também Divisão polinomial Teorema do resto Teorema fundamental da álgebra
Categoria:Matemática Briott-Ruffini