How to use sage to solve the discriminant of polynomial
Tags: howto, devops, tutorial, sagemath
Published: 2021-03-30 18:50:46

## Introduction to Sage
Sage is an open source software system that bundles many standard open source mathematical software
libraries into a common Python-based interface. Cloud computing is well supported: you do not have to
install Sage on your computer to compute.
1.1 The Sage environment
We will use the online version of Sage, so the GUI is your web browser.
Three steps to getting started:
1. Go to http://www.sagemath.org
2. click on download!
3. download the one suitable for your laptop
this will consume so much data so you can click on this below link to try to do your work online. https://cocalc.com

### Polynomial Problem
so how can we use this sage to solve the discriminant of a polynomial? it is very simple logic
just know the equation of your function. you need to compute all your co-efficient and let it equal to a variable, then write a code to calculate the discriminant
An Intersection Problem discriminant. 
### Example
let say we need to calculate the discriminant of a quadratic with sageMath.
### solution
we know quadratic can be written as ax^2+bx+c. 
and we can see that all the co-efficient are a,b and c.
now these are the steps to write the codes
#### step1:
 type 'R.' follow by the variable (x) and all the co-efficient equal to QQ[] like the following.
```
R.<x,a,b,c> = QQ[] 
```
#### step2 
let x=polygen(R). it might not be x it can be any variable you use for your equation for examples: if your equation is in form of r i.e(ar^2+br+c) then you use r
I mean your step2 will look like r=polygen(R)
#### step3
let any letter be the equation it self (I will advise you use y) so step3 look like
```
y=ax^2+bx+c
```
#### Step4  
write a code to calculate the discriminant by writing the letter that denote the equation followed by discriminant function like the following.
```
y.discriminant()
```
now click run on the screen you will get your answer below the codes. 
the whole codes look like the following.
```
R.<x,a,b,c> = QQ[] 
x=polygen(R).
y=a*x^2+b*x+c
y.discriminant()
```
Result


let us try another example
### Example2
let's try to find the discriminant of a polynomial with degree 3 
solutions
let the equation be ax^3+bx^2+cx+d
Now our code is 
Let y= a*x^3 + b*x^2 + c*x + d
Codes
```
R.<x,a,b,c,d> = QQ[]
x = polygen(R)
y = a*x^3 + b*x^2 + c*x + d
y.discriminant()
```
Result
```
b^2*c^2 - 4*a*c^3 - 4*b^3*d + 18*a*b*c*d - 27*a^2*d^2
```
Example3
let's try it for polynomial of degree 4. 
Let y = a*x^4+ b*x^3+ c*x^2 + d*x + e
Codes
```
R.<x,a,b,c,d,e> = QQ[]
x = polygen(R)
y = a*x^4+ b*x^3+ c*x^2 + d*x + e
y.discriminant()
```
Result
```
b^2*c^2*d^2 - 4*a*c^3*d^2 - 4*b^3*d^3 + 18*a*b*c*d^3 - 27*a^2*d^4 - 4*b^2*c^3*e + 16*a*c^4*e + 18*b^3*c*d*e - 80*a*b*c^2*d*e - 6*a*b^2*d^2*e + 144*a^2*c*d^2*e - 27*b^4*e^2 + 144*a*b^2*c*e^2 - 128*a^2*c^2*e^2 - 192*a^2*b*d*e^2 + 256*a^3*e^3
```

### How to find the number of terms of any polynomial.
To find the number of terms of any polynomial use `number_of_terms()` function. example
let say y=3x^2+4x^5-3x+5. if we need to find the number of terms of y our code will be the following.
codes
```R
 y=3x^2+4x^5-3x+5
 y.number_of_terms()
```
Result
4
Now let's use this to solve a polynomial that we solve in previous example. let's solve for the number of terms in the discriminant of polynomial of 4th degree. our codes will look like the following:
Codes
```
R.<x,a,b,c,d,e> = QQ[]
x = polygen(R)
y = a*x^4+ b*x^3+ c*x^2 + d*x + e
y.discriminant()
k=y.discriminant()
k.number_of_terms()
```
Result
```
b^2*c^2*d^2 - 4*a*c^3*d^2 - 4*b^3*d^3 + 18*a*b*c*d^3 - 27*a^2*d^4 - 4*b^2*c^3*e + 16*a*c^4*e + 18*b^3*c*d*e - 80*a*b*c^2*d*e - 6*a*b^2*d^2*e + 144*a^2*c*d^2*e - 27*b^4*e^2 + 144*a*b^2*c*e^2 - 128*a^2*c^2*e^2 - 192*a^2*b*d*e^2 + 256*a^3*e^3

16
```
### How to find the degree of polynomial
To find the degree of polynomial is very similar to others all we just need is to apply `degree()` function.
### Example
let say y=3x^2+4x^5-3x+5. if we need to find the degree of y our code will be the following.
codes
```R
 y=3x^2+4x^5-3x+5
 y.degree()
```
Result
5
Now let's use this to solve a polynomial that we solve in previous example. let's solve for the degree in the discriminant of polynomial of 4th degree. our codes will look like the following:
Codes
```
R.<x,a,b,c,d,e> = QQ[]
x = polygen(R)
y = a*x^4+ b*x^3+ c*x^2 + d*x + e
y.discriminant()
k=y.discriminant()
k.degree()
```
Result
```
b^2*c^2*d^2 - 4*a*c^3*d^2 - 4*b^3*d^3 + 18*a*b*c*d^3 - 27*a^2*d^4 - 4*b^2*c^3*e + 16*a*c^4*e + 18*b^3*c*d*e - 80*a*b*c^2*d*e - 6*a*b^2*d^2*e + 144*a^2*c*d^2*e - 27*b^4*e^2 + 144*a*b^2*c*e^2 - 128*a^2*c^2*e^2 - 192*a^2*b*d*e^2 + 256*a^3*e^3

6
```
 Now I believe you now understand how it works. now try to do for degree 5,6,7,8 and 9. Yeah just follow the same step.
Enjoy coding! it's the guy maxwizard meet you in the next lesson.