Assegnato un polinomio p(x) di grado n (con n + 1 coefficienti):
\( \displaystyle {p}{\left({x}\right)}={\sum_{{{i}={0}}}^{{n}}}{p}_{{i}}{{x}}^{{i}}={p}_{{0}}+{p}_{{1}}{x}+...+{p}_{{n}}{{x}}^{{n}} \)
l’algoritmo di Horner calcola il valore assunto da p(x) in un punto \( \displaystyle {x}_{{0}} \) nel seguente modo:
\( \displaystyle {p}{\left({x}_{{0}}\right)}={p}_{{0}}+{x}_{{0}}{\left({p}_{{1}}+{x}_{{0}}{\left({p}_{{2}}+{x}_{{0}}{\left({p}_{{3}}+{x}_{{0}}{\left(...{x}_{{0}}{\left({p}_{{{n}-{2}}}+{x}_{{0}}{\left({p}_{{{n}-{1}}}+{x}_{{0}}{p}_{{n}}\right)}\right)}\right)}\right)}\right)}\right)} \).
Modificare l’algoritmo in modo da calcolare la derivata prima di un polinomio:
\( \displaystyle {p}'{\left({x}\right)}={\sum_{{{i}={0}}}^{{n}}}{i}{p}_{{i}}{{x}}^{{{i}-{1}}} \).
Scrivere una function Matlab che, ricevuti in input il vettore p contenente i coefficienti \( \displaystyle {p}_{{i}} \)
del polinomio p(x) ed un punto \( \displaystyle {x}_{{0}} \), fornisca in output il valore che il polinomio derivata
prima assume nel punto \( \displaystyle {x}_{{0}} \) (ovvero \( \displaystyle {p}'{\left({x}_{{0}}\right)} \)).
La function deve effettuare le seguenti operazioni:
• determinare il grado n del polinomio p(x) (utilizzando la dimensione del vettore dei
coefficienti);
• applicare l’algoritmo di Horner per effettuare il calcolo del valore del polinomio
derivata prima nel punto assegnato \( \displaystyle {x}_{{0}} \).



