Re: Polinomio composito e area di una funzione integrale

Messaggioda andreadel1988 » 12/07/2023, 20:35

Comuqnue ho trovato un altro errore, ovvero al posto di $0$ andavo sostituito $-1$ poichè l'integrale va da $-1$ a $x$ (mentre nel codice da dove l'avevo copiato andava da $0$ a $x$), perciò l'ho riscritto così:
Script:
Codice:
g=@(t)(t.*(sin(t)).^2.*exp(-t));
m=10;
a=-2;
b=1;
F=@(x)(x(end)-(x(:,end)+1)/6/m.*( g(x(:,1))+2*sum(g(x(:,3:2:2*m)),2)+4*sum(g(x(:,2:2:2*m)),2)+g(x(:,2*m+1))) );
k=0;
t=linspace(a,b,100);
for tt=t
    k=k+1;
    x(k,:)=linspace(-1,tt,2*m+1);
end
figure(1)
hold on
plot(t,F(x),'k')
pause
n=3;
A=0;
x = linspace(a,b,m+1);
for j=1:m
    x_in=linspace(x(j),x(j+1),n+1)';
    for k=1:n+1
        xF=linspace(-1,x_in(k),2*m+1);
        y(k)=F(xF);
    end
    a = get_polyn(x_in,y');
    t = linspace(x(j),x(j+1),100);
    yp= polyval(a,t);
    plot(t,yp,'r');
    A=A+Cavalieri_Simpson_polinomi(x(j),x(j+1),m,a);
    pause
end
title('Grafico')
legend('F','polinomio composito')
xlabel('asse x')
ylabel('asse y')


però il polinomio interpolante non interpola per niente $F$ nei nodi, anche se è molto simile a $F$, questi sono i due grafici:

Immagine

non capisco cosa sia sbagliato, sembra tipo traslato il polinomio interpolante rispetto a $F$...
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 823 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda feddy » 12/07/2023, 20:46

Esatto, ho voluto evitare il fatto che il primo addendo risultasse una matrice. x è una matrice di taglia 100 x 21. Ad ogni riga di x fissata corrisponde un vettore coi punti necessari per applicare la formula di quadratura da $0$ ad un certo valore compreso tra $-2$ e $1$.

EDIT: Si, -1 è corretto, non avevo guardato
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3004 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Polinomio composito e area di una funzione integrale

Messaggioda andreadel1988 » 12/07/2023, 20:54

Ho provato a vedere il valore in $0$ di $F$ ma non rida:

Immagine

invece dovrebbe ridare quaclosa del tipo $0,44439$, è un errore di approssimazione di cavalieri-simpson o è proprio sbagliato? (anche se come errore di approssimazione mi sembra molto grossolano, inoltre mi viene il dubbio che sia questo il problema per cui il polinomio non interpola $F$, quindi è il polinomio a essere esatto non $F$ aahahahhaha)
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 824 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda andreadel1988 » 12/07/2023, 21:00

In effetti il polinomio è corretto:

Immagine

è $F$ che è sbagliata
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 825 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda feddy » 12/07/2023, 21:04

Usando la tua $F$ e interpolando con polyfit + polyval (quindi senza il tuo codice) il tutto funziona.



Immagine
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3005 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Polinomio composito e area di una funzione integrale

Messaggioda andreadel1988 » 12/07/2023, 21:08

feddy ha scritto:Usando la tua $F$ e interpolando con polyfit + polyval (quindi senza il tuo codice) il tutto funziona.



Immagine


A me sembra tipo che la mia $F$ sia tralsata di $1$ sopra l asse delle y ma non capisco perchè (infatti se tipo in $0$ ci tolgo 1 mi viene $0,44439$)
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 826 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda andreadel1988 » 12/07/2023, 21:22

feddy ha scritto:Usando la tua $F$ e interpolando con polyfit + polyval (quindi senza il tuo codice) il tutto funziona.

Comunque polyval posso usarlo per valutare i polinomi, polifit invece non lo posso usare anche se so cos'è ma non ci è consentito, comunque il problema non è nel polinomio interpolante ma in $F$ per quello che compare dai grafici
Ultima modifica di andreadel1988 il 12/07/2023, 21:23, modificato 1 volta in totale.
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 827 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda feddy » 12/07/2023, 21:22

Perdonami, la mia $F$ era sbagliata, l'avevo data per buona :D. L'errore è dunque nella funzione in cui interpoli. Anche nel caso di una $F$ sbagliata, avresti dovuto trovare l'interpolante. Prova a testare la tua funzione interpolante in casi più semplici per vedere dove è il problema.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3006 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Polinomio composito e area di una funzione integrale

Messaggioda andreadel1988 » 12/07/2023, 21:24

feddy ha scritto:Perdonami, la mia $F$ è sbagliata e la tua è giusta. Infatti in -2 la mia $F$ ha un valore errato come puoi notare. L'errore è dunque nel modo in cui interpoli.

Scusami come fa a essere sbagliato il polinomio interpolante se esso ridà in $0$ mentre $F$ non ridà in $0$? Se provi tipo a usare un calcolatore per vedere quanto dovrebbe fare $F$ in $0$ ti viene tipo $0.44439$ che è giusto per il polinomio interpolante e sbagliato per $F$ che è tipo traslata $1$ di sopra (parlo dei miei grafici che ho mandato), ad esmepio io ho usato wolphrama per calcolare $F$ in $0$ e viene:

Immagine
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 828 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda feddy » 12/07/2023, 21:35

Sostituisci la tua $F$ con questa:

Codice:
F=@(x)(x(:,end)-(x(:,end)+1)/6/m.*( g(x(:,1))+2*sum(g(x(:,3:2:2*m)),2)+4*sum(g(x(:,2:2:2*m)),2)+g(x(:,2*m+1))) );

Ora dovrebbe tornare il tutto. Confermi?
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3007 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

PrecedenteProssimo

Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite