Function polyfit

di il
2 risposte

Function polyfit

Salve a tutti io dovrei svolgere questo compito. Allego il link alla foto con il testo:

https://ibb.co/ftdxBg

In pratica mi da sempre un errore, questo:
Error using polyfit (line 47)
X and Y vectors must be the same size.
Vi allego il codice che ho creato per controllare.
Grazie mille a chi risponderà...
f=@(x) (1+x.^2)/(1+x.^4);
subplot(2,2,1)
fplot(f,[-5,5])
title('grafico di f in [-5,5]')
a=-2.3;
b=4.7;
subplot(2,2,2)
fplot(f,[a,b])
title('grafico di f in [-2.3,4.7]')
x=linspace(a,b,10);
xx=linspace(a,b,100);
y=f(x);
hold on
subplot(2,2,3)
plot(x,y,'r--')
title('grafico del polinomio |P_f| sulla griglia di 10 punti')
axis equal
a=polyfit(x,y,9);
PF=polyval(a,xx);
subplot(2,2,4)
plot(xx,PF,'b*')
title('grafico del polinomio |P_f| sulla griglia di 100 punti')
axis equal

2 Risposte

  • Re: Function polyfit

    Il messaggio di errore viene generato prima della chiamata alla funzione "polyfit".

    Si direbbe che manchi un "." prima dell'operatore "/".
    
    f=@(x) (1+x.^2)/(1+x.^4);
    
    dovrebbe essere:
    
    f=@(x) (1+x.^2)./(1+x.^4);
    
    Senza il "." il risultato della valutazione della funzione sull'intervallo [-5 5] è uno scalare invece di un vettore.
    Inserendo il "." il codice sembra funzionare correttamente e genera i quattro grafici (almeno in Octave).

    Hai pubblicato il codice corretto?
  • Re: Function polyfit

    Ask_raf grazie mille mi era sfuggito!
    Grazie davvero
Devi accedere o registrarti per scrivere nel forum
2 risposte