Vieta’s Formulas

10 Apr, 2022
Vieta’s formula relates the coefficients of polynomial to the sum and product of their roots, as well as the products of the roots taken in groups. Vieta’s formula describes the relationship of the roots of a polynomial with its coefficients. Consider the following example to find a polynomial with given roots. (Only discuss real-valued polynomials, i.e. the coefficients of polynomials are real numbers). Let’s take a quadratic polynomial. Given two real roots and , then find a polynomial. Consider the polynomial . Given the roots, we can also write it as .Since both equation represents the same polynomial, so equate both polynomialSimplifying the above equation, we getComparing the coefficients of both sides, we getFor , ,For , , For constant term, ,Which gives, ,Equation (1) and (2) are known as Vieta’s Formulas for a second degree polynomial. In general, for an degree polynomial, there are n different Vieta’s Formulas. They can be written in a condensed form as For The following examples illustrate the use of Vieta’s formula to solve a problem.Examples:  
Input : n = 2
        roots = {-3, 2}
Output : Polynomial coefficients: 1, 1, -6

Input : n = 4
        roots = {-1, 2, -3, 7}
Output : Polynomial coefficients: 1, -5, -19, 29, 42
 
C++
Java
Python3
C#
PHP
Javascript
// C++ program to implement vieta formula// to calculate polynomial coefficients.#include <bits/stdc++.h>using namespace std; // Function to calculate polynomial// coefficients.void vietaFormula(int roots[], int n){    // Declare an array for    // polynomial coefficient.    int coeff[n + 1];     // Set all coefficients as zero initially    memset(coeff, 0, sizeof(coeff));         // Set highest order coefficient as 1    coeff[n] = 1;     for (int i = 1; i <= n; i++) {        for (int j = n - i - 1; j < n; j++) {            coeff[j] = coeff[j] + (-1) *                roots[i - 1] * coeff[j + 1];        }    }     cout << "Polynomial Coefficients: ";    for (int i = n; i >= 0; i--) {        cout << coeff[i] << " ";    }} // Driver codeint main(){    // Degree of required polynomial    int n = 4;         // Initialise an array by    // root of polynomial    int roots[] = { -1, 2, -3, 7 };         // Function call    vietaFormula(roots, n);         return 0;}
// Java program to implement vieta formula// to calculate polynomial coefficients.import java.util.Arrays; class GFG{ // Function to calculate polynomial// coefficients.static void vietaFormula(int roots[], int n){    // Declare an array for    // polynomial coefficient.    int coeff[] = new int[++n + 1];    Arrays.fill(coeff, 0);         // Set highest order coefficient as 1    coeff[n] = 1;     for (int i = 1; i <n; i++)    {        for (int j = n - i - 1; j < n; j++)        {            coeff[j] = coeff[j] + (-1) *                roots[i - 1] * coeff[j + 1];        }    }     System.out.print("Polynomial Coefficients: ");    for (int i = n; i > 0; i--)    {        System.out.print(coeff[i] + " ");    }} // Driver codepublic static void main(String[] args){    // Degree of required polynomial    int n = 4;         // Initialise an array by    // root of polynomial    int roots[] = { -1, 2, -3, 7 };         // Function call    vietaFormula(roots, n);    }} /* This code contributed by PrinciRaj1992 */
# Python3 program to implement# Vieta's formula to calculate# polynomial coefficients.def vietaFormula(roots, n):         # Declare an array for    # polynomial coefficient.    coeff = [0] * (n + 1)         # Set Highest Order    # Coefficient as 1    coeff[n] = 1    for i in range(1, n + 1):        for j in range(n - i - 1, n):            coeff[j] += ((-1) * roots[i - 1] *                                coeff[j + 1])         # Reverse Array    coeff = coeff[::-1]         print("Polynomial Coefficients : ", end = "")         # Print Coefficients    for i in coeff:        print(i, end = " ")    print() # Driver Codeif __name__ == "__main__":         # Degree of Polynomial    n = 4         # Initialise an array by    # root of polynomial    roots = [-1, 2, -3, 7]         # Function call    vietaFormula(roots, n)     # This code is contributed# by Arihant Joshi
// C# program to implement vieta formula// to calculate polynomial coefficients.using System;     class GFG{ // Function to calculate polynomial// coefficients.static void vietaFormula(int []roots, int n){    // Declare an array for    // polynomial coefficient.    int []coeff = new int[++n + 1];         // Set highest order coefficient as 1    coeff[n] = 1;     for (int i = 1; i <n; i++)    {        for (int j = n - i - 1; j < n; j++)        {            coeff[j] = coeff[j] + (-1) *                roots[i - 1] * coeff[j + 1];        }    }     Console.Write("Polynomial Coefficients: ");    for (int i = n; i > 0; i--)    {        Console.Write(coeff[i] + " ");    }} // Driver codepublic static void Main(String[] args){    // Degree of required polynomial    int n = 4;         // Initialise an array by    // root of polynomial    int []roots = { -1, 2, -3, 7 };         // Function call    vietaFormula(roots, n);}} // This code has been contributed by 29AjayKumar
<?php// PHP program to implement vieta formula// to calculate polynomial coefficients. // Function to calculate polynomial// coefficients.function vietaFormula($roots, $n){    // Declare an array for    // polynomial coefficient.    $coeff = array_fill(0, $n + 1, 0);     // Set all coefficients as zero initially         // Set highest order coefficient as 1    $coeff[$n] = 1;     for ($i = 1; $i <= $n; $i++)    {        for ($j = $n - $i; $j < $n; $j++)        {            $coeff[$j] = $coeff[$j] + (-1) *                         $roots[$i - 1] *                         $coeff[$j + 1];        }    }     echo "polynomial coefficients: ";    for ($i = $n; $i >= 0; $i--)    {        echo $coeff[$i]. " ";    }} // Driver code // Degree of required polynomial$n = 4; // Initialise an array by// root of polynomial$roots = array(-1, 2, -3, 7); // Function callvietaFormula($roots, $n); // This code is contributed by mits?>
<script>// Javascript program to implement vieta formula// to calculate polynomial coefficients. // Function to calculate polynomial// coefficients.function vietaFormula(roots, n){     // Declare an array for    // polynomial coefficient.    let coeff = new Array(++n + 1);    for(let i = 0; i < coeff.length; i++)        coeff[i] = 0;           // Set highest order coefficient as 1    coeff[n] = 1;       for (let i = 1; i <n; i++)    {        for (let j = n - i - 1; j < n; j++)        {            coeff[j] = coeff[j] + (-1) *                roots[i - 1] * coeff[j + 1];        }    }       document.write("Polynomial Coefficients: ");    for (let i = n; i > 0; i--)    {        document.write(coeff[i] + " ");    }} // Driver code// Degree of required polynomiallet n = 4; // Initialise an array by// root of polynomiallet roots = [ -1, 2, -3, 7 ]; // Function callvietaFormula(roots, n); // This code is contributed by rag2127</script>
Polynomial Coefficients: 1 -5 -19 29 42 
 
Time Complexity : . 
joshi_arihant
Mithun Kumar
princiraj1992
29AjayKumar
rag2127
ysfbensadik
expression-evaluation
maths-polynomial
Engineering Mathematics Questions
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.