[MatLab] Funzione Spline

davicos
Salve a tutti,

circa questo esercizio


Click sull'immagine per visualizzare l'originale


ho provato a fare una cosa del genere
a = 2;


for x=linspace(-1,0)
    f1 = x.^2 + 1;
    for x=linspace(0.1,1)
        f2 = -x.^3 + a.*x.^2 + 1;
    end
end


ma non credo sia corretto e infatti non saprei proprio cos'altro fare..

Qualche suggerimento?
Grazie!

Risposte
apatriarca
L'esercizio non sembra richiedere la scrittura di alcun codice. Che cosa rappresenta quel codice?

davicos
Volevo provare ad interpolare la funzione nei nodi $x$ e $y$ che vengono forniti inserendo i rispettivi valori della $a$ per provare. Allora come si risolve?

insideworld
hai gia una spline interpolante i dati assegnati dal problema, per ogni a.
Per verificarlo sostituisci nella prima equazione la coordinata x del punto, ovvero -1 e 0 e troverai i punti y=f(x) assegnati, idem per la seconda equazione, vedi che per x=0 ottieni 1 e per x=1 ottieni $y=f(x)=-(1)^3+a*1+1=-1+1+a=a$

davicos
Non ho capito.
Quando sostituisco $x=1$ nel secondo ramo ottengo solo $a$ ma come faccio a capire che valore deve assumere la costante?
Si tenga presente che la soluzione proposta è "per $a=1$"..

apatriarca
Che definizione ti è stata data per "spline cubica interpolante"? La funzione passa correttamente attraverso quei punti ed è certamente di grado <=3. Sarebbe utile capire quali altre condizioni sono richieste.

davicos
Vediamo se ho capito..

La definizione vuole che:

1) è un polinomio di grado al più $d$ (in questo caso tre) per un certo intervallo;

2) la derivata ennesima fino a $d-1$ è continua nell'intervallo;

3) $S(x_i) = y_i $ per $i = 1, .. , n+1$; ( $S$ sta per spline)

Lasciando perdere tecnicismi per scrivere le cose più importanti..
1) è verificata, la 3) è conseguenza della 2) (quindi non si può verificare senza aver verificato la 2) ). Pertanto l'ho verificata:

2)

$ f^{\prime} = { ( 2x ),( -3x^2+2ax ):} $ e la calcolo per $x=0$ (punto critico, di "saldatura") ma per adesso per qualsiasi $a$ non ci sono problemi, è comunque zero. Continuo..

$ f^('') = { ( 2 ),( -6x+2a ):} $ e per $x=0$ occorre che $a$ valga $1$..


Corretto??

apatriarca
Sì, corretto. Il terzo punto non dipende dal due, bastava verificare che la funzione passasse per quei punti (condizione verificata per ogni valore di a).

davicos
Ah ok. Bene grazie!

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