\documentclass[11pt,a4paper,dvipsnames]{article}
\usepackage[utf8]{inputenc}

\usepackage[catalan]{babel}
\input{../../../hw_preamble.tex}

\title{Laboratori 2: Discriminant\\Teoria de Galois}
\author{Adrià Vilanova Martínez}

\showcorrectionsfalse % Change "true" to "false" in order to show corrections as
                      % if they weren't corrections (in black instead of red).

\begin{document}

\maketitle

\section{L'equació general de grau $n$}

Siguin $X_1, \ldots, X_n, A_n, X$ indeterminades sobre un cos $K$, i $L = K(A_n, X_1, \ldots, X_n)$. El \textbf{polinomi general de grau $n$} sobre $K$ és el polinomi:
\[ F = A_n (X - X_1) \cdots (X - X_n) \in L[X]. \]

Els coeficients d'aquest polinomi són clarament polinomis en $X_1, \ldots, X_n, A_n$.

\begin{Problem}
  Escrivim $F = A_n (X^n - s_1 x^{n-1} + s_2 x^{n-2} + \cdots + (-1)^n s_n)$. Doneu fórmules explícites per a les funcions polinòmiques $s_1, \ldots, s_n$ en termes de $X_1, \ldots, X_n$.
\end{Problem}

Demostrarem per inducció que aquests polinomis són:
\[ s_k = \sum_{1 \leq i_1 < i_2 < \ldots < i_k \leq n} X_{i_1} X_{i_2} \cdots X_{i_k}. \]

\underline{Cas base:} ($n = 1$)

\[ F = A_n(X - X_1). \]

L'expressió proposada per $F$ en funció dels $s_k$ és $A_n(X - s_1)$, on $s_1 = X_1$. Així doncs, veiem que és igual a $F$, comprovant així que l'expressió és certa per $n = 1$.

\underline{Pas inductiu:} ($n < n$)

En aquest cas tenim (usarem com a conveni que $\tilde{s}_0 = 1$ per simplificar l'expressió):
\[ F = A_n \left[ \prod_{k = 1}^{n - 1} (X - X_k) \right] (X - X_n) = A_n \left[ \sum_{k = 0}^{n - 1} (-1)^k X^{(n - 1) - k} \cdot \tilde{s}_k \right] (X - X_n) = \]
\[ = A_n \left( \sum_{k = 0}^{n - 1} (-1)^{k} X^{n - k} \cdot \tilde{s}_k - \sum_{k = 0}^{n - 1} (-1)^k X^{(n - 1) - k} \cdot \tilde{s}_k X_n \right) = \]
\[ = A_n \left( \sum_{k = 0}^{n - 1} (-1)^{k} X^{n - k} \cdot \tilde{s}_k + \sum_{k = 1}^n (-1)^k X^{n - k} \cdot \tilde{s}_{k - 1} X_n \right) = \]
\[ = A_n \left( X^n \cancel{\tilde{s}_0} + \sum_{k = 1}^{n - 1} (-1)^k X^{n - k} (\tilde{s}_k + \tilde{s}_{k - 1} X_n) + (-1)^n \tilde{s}_{n - 1} X_n \right). \]

Comprovem que:
\[ \begin{cases}
  [x^n] F(x) = 1, \\
  [x^{n - k}] F(x) = (-1)^k (\tilde{s}_k + \tilde{s}_{k - 1} X_n) \notate[X]{{}={}}{1}{\scriptstyle \text{Hip. inductiva}} (-1)^k s_k \quad \forall k \in \{ 1, \ldots, n - 1 \}, \\
  [x^0] F(x) = (-1)^n \tilde{s}_{n - 1} X_n = (-1)^n X_1 \cdots X_{n - 1} \cdot X_n = (-1)^n s_1.
\end{cases} \]

\begin{Problem}
  Demostreu que els $s_k(X_1, \ldots, X_n)$ són \textbf{polinomis simètrics} en $X_1, \ldots, X_n$, és a dir, que
  \[ \forall \sigma \in \mathcal{S}_n \quad s_k(X_{\sigma(1)}, \ldots, X_{\sigma(n)}) = s_k(X_1, \ldots, X_n). \]
\end{Problem}

\[ s_k(X_{\sigma(1)}, \ldots X_{\sigma(n)}) = \sum_{1 \leq i_1 < \ldots < i_k \leq n} X_{\sigma(i_1)} \cdots X_{\sigma(i_k)} = \]
\[ = \sum_{\{i_1, \ldots, i_k\} \in Y} X_{\sigma(i_1)} \cdots X_{\sigma(i_k)}, \]
on $Y := \{ \{i_1, \ldots, i_k\} : i_j \neq i_{j'} \; \forall j \neq j' \}$.

És clar que:
\[ \sigma Y \equiv \{ \{\sigma(i_1), \ldots, \sigma(i_k)\} : \{i_1, \ldots, i_k\} \in Y \} = Y \quad \forall \sigma \in S^k. \]

Per tant:
\[ s_k(X_{\sigma(1)}, \ldots X_{\sigma(n)}) = \sum_{\{\sigma^{-1}(i_1), \ldots \sigma^{-1}(i_k)\} \in \sigma^{-1} Y} X_{\sigma^{-1}(\sigma(i_1))} \cdots X_{\sigma^{-1}(\sigma(i_k))} = \]
\[ = \sum_{\{m_1, \ldots m_k\} \in Y} X_{i_1} \cdots X_{i_k} = s_k(X_1, \ldots, X_n). \]

\hrulefill

Les funcions $s_1(X_1, \ldots, X_n), \ldots, s_n(X_1, \ldots, X_n)$ s'anomenen \textbf{polinomis simètrics elementals} en $X_1, \ldots, X_n$, i són molt importants gràcies al:

\textbf{Teorema de Waring}: Qualsevol polinomi simètric en $X_1, \ldots, X_n$ es pot escriure com a polinomi en els polinomis simètrics elementals.

Per exemple, $X_1^2 + X_2^2 = s_1(X_1, X_2) - 2 s_2(X_1, X_2)$.

La demostració del teorema de Waring és constructiva: ens dona un mètode per determinar el polinomi en els $s_k$. Podeu intuir-la fent algun exemple:

\newpage

\begin{Problem}
  Expresseu $X_1^3 + X_2^3 + X_3^3 + X_4^3 + X_5^3$ com a polinomi en \\ $s_1(X_1, \ldots, X_5), \ldots, s_5(X_1, \ldots, X_5)$.
\end{Problem}

\[ \left( \vphantom{\sum_{i} X_i} \right. \underbrace{\sum_{i} X_i}_{s_1} \left. \vphantom{\sum_{i} X_i} \right)^3 = \sum_{i} X_i^3 + 3 \sum_{i \neq j} X_i^2 X_j + 6 \underbrace{\sum_{i < j < k} X_i X_j X_k}_{s_3} \implies \]
\[ \implies \sum_{i} X_i^3 = s_1^3 - 3 \sum_{i \neq j} X_i^2 X_j - 6 s_3. \]

Per expressar el sumatori del mig en termes dels polinomis simètrics elementals, donat que els polinomis generats pels polinomis simètrics elementals són una ``base'' dels polinomis simètrics degut al Teorema de Waring, igualarem el nostre polinomi a una combinació lineal d'aquests polinomis generats. Tenint en compte que el nostre polinomi és de grau 3, només caldrà considerar d'aquesta base els polinomis de grau 3, és a dir, $s_1^3$, $s_1 s_2$ i $s_3$. Aleshores, si anomenem $\tilde{F} := \sum_{i \neq j} X_i X_j$, tenim:
\[ \tilde{F} = \alpha s_1^3 + \beta s_1 s_2 + \gamma s_3. \]
Donat que $\tilde{F}$, $s_2$ i $s_3$ no tenen sumands de la forma $X_i^3$, sabem automàticament que $\alpha = 0$. Calculem $s_1 s_2$:
\[ s_1 s_2 = \left( \sum_i X_i \right) \left( \sum_{j < k} X_j X_k \right) = \sum_i \left( \sum_{j < k} X_i X_j X_k \right) = \]
\[ = \sum_i \left[ \left( \sum_{\substack{j < k \\ j, k \neq i}} + \sum_{\substack{j < k \\ j = i}} + \sum_{\substack{j < k \\ k = i}} \right) X_i X_j X_k \right] = \]
\[ = \sum_i \left[ \sum_{\substack{j < k \\ j, k \neq i}} X_i X_j X_k + \left( \sum_{k > i} X_i^2 X_k + \sum_{k < i} X_k X_i^2 \right) \right] = \]
\[ = \sum_i \left( \sum_{\substack{j < k \\ j, k \neq i}} X_i X_j X_k \right) + \sum_{i \neq k} X_i^2 X_k = \]
\[ = \sum_i \left( \sum_{\substack{j < k \\ j, k \neq i}} X_i X_j X_k \right) + \tilde{F} = \]
\[ = \left[ \left( \sum_{i < j < k} + \sum_{j < i < k} + \sum_{j < k < i} \right) X_i X_j X_k \right] + \tilde{F} = \]
\[ = 3s_3 + \tilde{F}. \]

Per tant:
\[ \tilde{F} = \beta (3 s_3 + \tilde{F}) + \gamma s_3, \]
d'on obtenim:
\[ \begin{cases}
  \beta = 1, \\
  \gamma = -3,
\end{cases} \]
i, per tant:
\[ \sum_{i \neq j} X_i^2 X_j \equiv \tilde{F} = s_1 s_2 - 3 s_3. \]

Substituint al resultat anterior, obtenim:
\[ \sum_i X_i^3 = s_1^3 - 3(s_1 s_2 - 3 s_3) - 6 s_3 = s_1^3 - 3 s_1 s_2 + 3 s_3. \]

Una manera més ràpida hagués estat usar les fórmules de Girard-Newton que el meu grup va presentar dins del tema d'avaluació continuada de l'assignatura Estructures Algebraiques.

\begin{Problem}
  Demostreu que $\Delta(F)$ es pot escriure com a polinomi en \\
  $s_1(X_1, \ldots, X_n), \, \ldots, \, s_n(X_1, \ldots, X_n), \, A_n$.
\end{Problem}

Demostrarem que el polinomi és simètric i, per tant, pel Teorema de Waring tindrem que es pot escriure com a polinomi en els polinomis simètrics elementals.

Per veure que el polinomi és simètric, només cal comprovar que aplicant una transposició a les variables obtenim el mateix polinomi (ja que qualsevol permutació és una composició de permutacions).

Considerem la permutació $\sigma$ que transposa les variables $X_l \leftrightarrow X_m$ i deixa fixes totes les altres. Aleshores:
\[ \Delta(f)(X_{\sigma(1)}, \ldots, X_{\sigma(l)}, \ldots, X_{\sigma(m)}, \ldots, X_{\sigma(n)}) = \]
\[ = \Delta(f)(X_1, \ldots, X_m, \ldots, X_l, \ldots, X_n) = a_n^{2n - 2} \prod_{i < j} (X_i - X_j)^2 = \]
\[ = a_n^{2n - 2} \prod_{\mathclap{\substack{i < j \\ i, j \not\in \{ l, m \}}}} (X_i - X_j)^2 \prod_{\mathclap{i \not\in \{ l, m \}}} (X_i - X_m)^2 \prod_{\mathclap{i \not\in \{ l, m \}}} (X_i - X_l)^2 (X_m - X_l)^2 = \]
\[ = a_n^{2n - 2} \prod_{\mathclap{\substack{i < j \\ i, j \not\in \{ l, m \}}}} (X_i - X_j)^2 \prod_{\mathclap{i \not\in \{ l, m \}}} (X_i - X_l)^2 \prod_{\mathclap{i \not\in \{ l, m \}}} (X_i - X_m)^2 (X_l - X_m)^2 = \]
\[ = \Delta(f) (X_1, \ldots, X_l, \ldots, X_m, \ldots, X_n). \]

El fet que el discriminant sigui un polinomi simètric en $X_1, \ldots, X_n$ és un fet rellevant, donat que és el que garanteix que està ben definit (independentment de l'equitatge de les arrels, sempre té el mateix valor).

\newpage

\begin{Problem}
  Considereu el polinomi general de grau 2 sobre $K$:
  \[ F(x) = a(X - X_1)(X - X_2) =: aX^2 + bX + c. \]
  Descriviu $\Delta(F)$ en terme dels coeficients $a, b, c \in K(a, X_1, X_2)$ de $F$.
\end{Problem}

\[ \Delta(F) = a^2 (X_1 - X_2)^2 = a^2 [(X_1 + X_2)^2 - 4 X_1 X_2] = a^2(s_1^2 - 4 s_2). \]

Com hem demostrat a l'apartat 1: $F = a(X^2 - s_1 X + s_2)$. Per tant, igualant els coeficients del polinomi $F$ tenim:
\[ \begin{cases}
  a = a, \\
  b = - a s_1 \implies s_1 = -\frac{b}{a}, \\
  c = a s_2 \implies s_2 = \frac{c}{a}.
\end{cases} \]

Per tant, podem escriure el discriminant com:
\[ \Delta(F) = a^2\left( \frac{b^2}{a^2} - 4 \frac{c}{a} \right) = b^2 - 4ac. \]

\begin{Problem}
  Considereu el polinomi
  \[ F(X) = (X - X_1)(X - X_2)(X + X_1 + X_2) =: X^3 + pX + q. \]
  Descriviu $\Delta(F)$ en termes dels coeficients $p, q \in K(X_1, X_2)$ de $F$.
\end{Problem}

\underline{Nota:} alguns càlculs no estan inclosos aquí, ja que es tracta de la simple multiplicació de polinomis. Els càlculs complets es poden trobar a \url{https://drive.avm99963.com/s/M6tmjyz9b1xtdv7}.

En aquest problema utilitzarem la següent notació per representar els monomis d'un polinomi homogeni de grau $d$ en $X_1, X_2$ (en el nostre cas $d = 6$ i elidirem la $d$):
\[ q_d(n) := X_1^n X_2^{d - n}, \quad p_d(n) := q_d(n) + q_d(d - n) = X_1^n X_2^{d-n} + X_1^{d-n} X_2^n. \]

El discriminant és:
\[ \Delta (F) = [(X_1 - X_2) (X_1 + (X_1 + X_2)) (X_2 + (X_1 + X_2))]^2 = \]
\[ = [(X_1 - X_2) (2 X_1 + X_2) (2 X_2 + X_1)]^2 = ... = \]
\[ = 4 p(0) + 12 p(1) - 3 p(2) - 26 q(3). \]

Com el discriminant és un polinomi homogeni de grau $d$, sabem que es podrà expressar com a combinació lineal de productes de polinomis simètrics elementals que tingui grau 6. En el nostre cas, tenim:
\[ s_1 = X_1 + X_2 - (X_1 + X_2) = 0, \]
\[ s_2 = X_1 X_2 + X_1 (- X_1 - X_2) + X_2 (- X_1 - X_2) = - X_1^2 - X_2^2 - X_1 X_2, \]
\[ s_3 = - X_1 X_2 (X_1 + X_2). \]

Com $s_1 = 0$, els únics productes de polinomis simètrics de grau 6 són $s_2^3$ i $s_3^2$. Les seves expressions són:
\[ s_2^3 = - p(0) - 3 p(1) - 6 p(2) - 7 q(3), \]
\[ s_3^2 = p(2) + 2 q(3). \]

Aleshores, imposem $\Delta(F) = \alpha s_2^3 + \beta s_3^2$ i obtenim:
\[ \begin{cases}
  4 = - \alpha \implies \alpha = 4, \\
  12 = -3 \alpha, \\
  -3 = -6 \alpha + \beta \implies \beta = -3 - 24 = -27, \\
  -26 = -7\alpha + 2\beta.
\end{cases} \]

Per tant:
\[ \Delta(F) = 4 s_2^3 - 27 s_3^2 = 2^2 s_2^3 - 3^3 s_3^2. \]

\section{Especialització de fórmules}

Considerem ara un polinomi $f(X) = a_n X^n + \ldots + a_1 X + a_0 \in K[X]$, i siguin $\alpha_1, \ldots, \alpha_n \in \bar{K}$ les seves arrels, de forma que $f = a_n (X - \alpha_1) \cdots (X - \alpha_n)$.

\begin{Problem}
  Demostreu que l'aplicació
  \[ \begin{array}{rrcl}
    \varphi: & K[A_n, X_1, \ldots, X_n] & \longrightarrow & \bar{K} \\
    & p(A_n, X_1, \ldots, X_n) & \longmapsto & p(a_n, \alpha_1, \ldots, \alpha_n)
  \end{array} \]
  és un morfisme d'anells.
\end{Problem}

Clarament $\varphi(1) = 1$. A més a més, si $p, q \in K[A_n, X_1, \ldots, X_n]$, tenim:
\[ \varphi(p(A_n, X_1, \ldots, X_n) + q(A_n, X_1, \ldots, X_n)) = \varphi((p + q)(A_n, X_1, \ldots, X_n)) = \]
\[ = (p + q)(a_n, \alpha_1, \ldots, \alpha_n) = p(a_n, \alpha_1, \ldots, \alpha_n) + q(a_n, \alpha_1, \ldots, \alpha_n) = \]
\[ = \varphi(p(A_n, X_1, \ldots, X_n)) + \varphi(q(A_n, X_1, \ldots, X_n)), \]
i finalment:
\[ \varphi(p(A_n, X_1, \ldots, X_n) \cdot q(A_n, X_1, \ldots, X_n)) = \varphi((p \cdot q)(A_n, X_1, \ldots, X_n)) = \]
\[ = (p \cdot q)(a_n, \alpha_1, \ldots, \alpha_n) = p(a_n, \alpha_1, \ldots, \alpha_n) \cdot q(a_n, \alpha_1, \ldots, \alpha_n) = \]
\[ \varphi(p(A_n, X_1, \ldots, X_n)) \cdot \varphi(q(A_n, X_1, \ldots, X_n)). \]

\newpage

\begin{Problem}
  Esteneu $\varphi$ a un morfisme $\tilde{\varphi}: K[A_n, X_1, \ldots, X_n][X] \to \bar{K}[X]$. Demostreu que la imatge del polinomi general de grau $n$ és $\tilde{\varphi}(F)$ i concloeu que $a_k = (-1)^k a_n s_k(\alpha_1, \ldots, \alpha_n)$.
\end{Problem}

Si anomenem $R := K[A_n, X_1, \ldots, X_n]$, és natural definir la següent aplicació:
\[ \begin{array}{rccc}
  \tilde{\varphi}: & R[X] & \longrightarrow & \bar{K}[X] \\
  & r(x) = \sum_k r_k x^k & \longmapsto & r^\varphi(x) = \sum_k \varphi(r_k) x^k.
\end{array} \]

Comprovem que és un morfisme d'anells:

\begin{enumerate}
  \item \textbf{Unitat}:
  \[ \tilde{\varphi}(1) = \varphi(1) = 1. \]

  \item \textbf{Suma}: Siguin $r(x) = \sum_k r_k x^k, s(x) = \sum_k s_k x^k$. Aleshores:
  \[ \tilde{\varphi}(r + s) = \sum_k \varphi(r_k + s_k) x^k = \sum_k (\varphi(r_k) + \varphi(s_k)) x^k = \tilde{\varphi}(r) + \tilde{\varphi}(s). \]

  Notem que en el cas que els dos polinomis $r$ i $s$ són de grau diferent, prenem el sumatori des de $k = 0$ fins al major grau, i els coeficients no definits del polinomi de grau més petit els prenem com a 0.

  \item \textbf{Producte}: Siguin $r(x) = \sum_k r_k x^k, s(x) = \sum_k s_k x^k$. Aleshores:
  \[ \tilde{\varphi}(r \cdot s) = \sum_{i, j} \varphi(r_i s_j) x^i x^j = \sum_{i, j} \varphi(r_i) \varphi(s_j) x^i x^j = \tilde{\varphi}(r) \cdot \tilde{\varphi}(s). \]
\end{enumerate}

La imatge del polinomi de grau $n$ és $\tilde{\varphi}(F) = f$, ja que el que fa $\tilde{\varphi}(F)$ és aplicar $\varphi$ als coeficients de $F$. Els coeficients de $F$ són $A_k \in K[A_n, X_1, \ldots, X_n]$ tal com s'expressa en la introducció de la primera secció. Per tant, aplicar $\varphi$ als coeficients de $F$ és canviar les $A_n$ per $a_n$, i els $X_k$ per les $\alpha_k$, que és justament la relació entre $F$ i $f$.

Per tant, com abans havíem demostrat que $A_k = (-1)^k A_n s_k(X_1, \ldots, X_n)$, aplicant $\tilde{\varphi}$ a cada coeficient i monomi del polinomi $F$, i igualant el resultat a $\tilde{\varphi}(F)$, obtenim:
\[ a_k = \tilde{\varphi}(A_k) = \tilde{\varphi}((-1)^k A_n s_k(X_1, \ldots, X_n)) = (-1)^k \cdot \tilde{\varphi}(A_n) \cdot \tilde{\varphi}(s_k(X_1, \ldots, X_n)) = \]
\[ = (-1)^k a_n s(\alpha_1, \ldots, \alpha_n). \]

\begin{Problem}
  Demostreu que si $H \in K[A_n, X_1, \ldots, X_n]$ és un polinomi simètric en $X_1, \ldots, X_n$, llavors $\varphi(H) \in K$.
\end{Problem}

Pel Teorema de Waring, sabem que podem expressar $H$ com a:
\[ H = \sum_{k} a_k \prod_{i \in I_k} s_i(\{X_j\}), \]
on estem abusant de la notació al productori per referir-nos a que iterem sobre subconjunts $I_k \subset \{1, \ldots, n\}$ diferents. També utilitzem la notació $s_i(\{ \{X_j\} \}) \equiv s_i(X_1, \ldots, X_n)$.

Anomenem $F := A_n (X - X_1) \cdots (X - X_n) \in K(A_n, X_1, \ldots, X_n)[X] = L[X]$. Aleshores, a l'apartat 1 hem vist que:
\[ [X^k] F(X) \equiv A_k = (-1)^k A_n \cdot s_k(\{X_j\}). \]
Observem que aplicant $\varphi$ a ambdós costats de l'igualtat obtenim:
\[ \varphi(A_n \cdot s_k(\{X_i\})) = \varphi((-1)^k A_k) \implies \]
\[ \implies \varphi(A_n) \cdot \varphi(s_k(\{X_i\})) = \varphi((-1)^k) \varphi(A_k) \implies \]
\[ \implies a_n \cdot s_k(\{\alpha_i\}) = (-1)^k a_k \implies \]
\[ \implies s_k(\{\alpha_i\}) = (-1)^k \frac{a_k}{a_n}. \]

Vegem ara que $\varphi(H) \in K$:
\[ \varphi(H) = \sum_k \varphi(a_k) \prod_{i \in I_k} \varphi(s_i(\{X_j\})) = \sum_k a_k \prod_{i \in I_k} s_i(\{\alpha_j\}) \notate[X]{{}={}}{1}{\scriptstyle \text{Igualtat anterior}} \]
\[ = \sum_k \underbrace{a_k}_{\in K} \prod \underbrace{(-1)^k}_{\in K} \underbrace{\frac{a_k}{a_n}}_{\in K} \in K. \]

\begin{Problem}
  Demostreu que $\Delta(f) = \tilde{\varphi}(\Delta(F))$. En particular, $\Delta(f) \in K$.
\end{Problem}

% NOTE: Això és més liós:
%A l'apartat 4 hem demostrat que $\Delta(F)$ es pot escriure com a un polinomi en $s_1(\{X_j\}), \ldots, s_n(\{X_j\}), A_n$. Per tant:
%\[ \Delta(F) = \sum_{i, J \subset \mathbb{N}, k} c_i \left( \prod_{j \in J} s_{j}(\{X_\gamma\}) \right) A_n^k \implies \]
%\[ \implies \tilde{\varphi}(\Delta(F)) = \sum_{i, J \subset \mathbb{N}, k} \tilde{\varphi}}(c_i) \left( \prod_{j \in J} \tilde{\varphi}}(s_{j}(\{X_\gamma\})) \right) \tilde{\varphi}}(A_n)^k = \]
%\[ = \sum_{i, J \subset \mathbb{N}, k} c_i \left( \prod_{j \in J} s_{j}(\{\alpha_\gamma\}) \right) a_n^k \]

\[ \tilde{\varphi} (\Delta(F)) = \tilde{\varphi} \left( A_n^{2n - 2} \prod_{i < j} (X_i - X_j)^2 \right) = \tilde{\varphi}(A_n)^{2n - 2} \prod_{i < j} (\tilde{\varphi}(X_i) - \tilde{\varphi}(X_j))^2 = \]
\[ = a_n^{2n - 2} \prod_{i < j} (\alpha_i - \alpha_j) = \Delta(f). \]

\hrulefill

Els problemes anteriors justifiquen que, si coneixem ``la fórmula'' del discriminant $\Delta(F)$ del polinomi general de grau $n$, podem calcular el discriminant de qualsevol polinomi de grau $n$ substituint els coeficients del polinomi donat en la fórmula. En particular, podem calcular $\Delta(f)$ sense conèixer les arrels de $f$.

\newpage

\begin{Problem}
  Siguin $\alpha_1, \alpha_2, \alpha_3, \alpha_4, \alpha_5 \in \bar{\mathbb{Q}}$ les arrels del polinomi $X^5 + 2X^4 + X^3 - X^2 + 3X - 1$. Calculeu:
  \[ \alpha_1^3 + \alpha_2^3 + \alpha_3^3 + \alpha_4^3 + \alpha_5^3. \]
  (Indicació: no perdeu el temps intentant calcular \textit{algebraicament} les $\alpha_k$...)
\end{Problem}

A l'apartat 3 hem vist que (aplicant el morfisme $\varphi$):
\[ \sum_i \alpha_i^3 = s_1^3 - 3 s_1 s_2 + 3 s_3. \]
Però a l'apartat 1 (aplicant el morfisme $\tilde{\varphi}$) hem vist que per un polinomi $F$, els polinomis $(s_i(\{\alpha_j\}))_i$ i $A_n$ descriuen els coeficients del polinomi (utilitzem $n = 5$):
\[ F = \cancel{A_5} (X^5 - s_1 X^4 + s_2 X^3 - s_3 X^2 + s_4 X - s_5), \]
i igualant coeficients amb el nostre polinomi obtenim:
\[ \begin{cases}
  s_1 = -2, \\
  s_2 = 1, \\
  s_3 = 1, \\
  s_4 = 3, \\
  s_5 = 1.
\end{cases} \]

Substituint aquests valors a la fòrmula de la suma, obtenim:
\[ \sum_{i = 1}^5 \alpha_i^3 = (-2)^3 - 3 (-2) \cdot 1 + 3 \cdot 1 = 1. \]

\end{document}
