[MATLAB e/o Calcolo Numerico] Piccolo dubbio su spline

rocco.g1
Ciao a tutti!

ho un dubbio su un esercizio di calcolo numerico che chiede di disegnare il grafico della splice che interpola la funzione $(1+x^2)*(log(1+x))$ in 8 punti equidistanti in [0,1];

non so perchè, ma quando faccio:

f = inline('(1 + x.^2)*log(1+x)')

z = linspace(0,1,8)


x = linspace(0,1)
p = f(x)


mi da come errore:
??? Error using ==> inlineeval
Error in inline expression ==> (1 + x.^2)*log(1+x)
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> inline.subsref at 25
    INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

Error in ==> spline_esercizio at 8
p = f(x)


il problema me lo da il logoratimo, perchè, infatti, se lo tolgo, tutta funziona normalmente...
è strano e non riesco a capirlo... mi spiegate perchè?

grazie a tutti! ;)

Risposte
amel3
Secondo me semplicemente è .* in luogo di *, perchè devi specificare la moltiplicazione componente per componente tra due vettori, senza ambiguità. Sbaglio?

f = inline('(1 + x.^2).*log(1+x)')

z = linspace(0,1,8)


x = linspace(0,1)
p = f(x)

rocco.g1
si è vero, grazie mille!!!

ci ho perso un'ora ed alla fine non sapevo più cosa fare...

ti ringrazio! ;)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.