Polinomio composito e area di una funzione integrale

Messaggioda andreadel1988 » 11/07/2023, 21:49

Consideriamo il seguente esercizio:

Immagine

Ho io scritto questo codice

Script:

Codice:
g=@(t)(t.*(sin(t)).^2.*exp(-t));
m=10;
a=-2;
b=1;
F=@(x)(x-(x(:,end)-0)/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(0,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 i=1:length(x_in)
        y(i) = x_in(i)-Cavalieri_Simpson(-1,x_in(i),m,g);
    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')


Funzione get_polyn:

Codice:
function a = get_polyn(x,y)
n=length(x)-1;
V(1:n+1,n+1)=ones(n+1,1);
for j=n:-1:1
 V(1:n+1,j) = x.*V(1:n+1,j+1);
end
a = V\y;


Funzione Cavalieri_Simpson_polinomi:

Codice:
function I2m=Cavalieri_Simpson_polinomi(a,b,m,f)
H=(b-a)/m;

x=linspace(a,b,2*m+1);

I2m=H/6*( polyval(f,x(1))+ 2*sum(polyval(f,x(3:2:2*m))) + 4*sum(polyval(f,x(2:2:2*m))) + polyval(f,x(2*m+1)));

end


Il tutto funziona, però quando va a fare il grafico della funzione $F$ me lo da sbagliato, come posso risolvere senza modificare la base della formula di quadratura?
.
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 807 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda feddy » 12/07/2023, 16:17

Cosa intendi con sbagliato?
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2995 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, 16:20

Avevo pensato di riscrivermi $x=\int_{-1}^{x}f(t)dt$ in modo tale che $F(x)=\int_{-1}^{x}f(t)-t(sint)^2e^(-t)dt$, però non credo che l'equazione integrale $x=\int_{-1}^{x}f(t)dt$ in $f(t)$ sia facilmente risolvibile (non ne ho mai fatta una ahhaha)
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 813 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

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

feddy ha scritto:Cosa intendi con sbagliato?

Questo è il grafico di $F$ che mi esce dallo handle:

Immagine

come vedi mi viene tipo un fascio di funzioni e pure sbagliato poichè in $0$ non deve valere $0$ mentre il polinomio interpolante è giusto
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 814 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda feddy » 12/07/2023, 18:19

Se dopo ho un po' di tempo do un'occhiata al codice. A livello concettuale è lo stesso problema che avevi nel post precedente, ossia una funzione che all'interno contiene un integrale, ma ammetto di non aver letto il tuo codice.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2997 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, 19:23

feddy ha scritto:Se dopo ho un po' di tempo do un'occhiata al codice. A livello concettuale è lo stesso problema che avevi nel post precedente, ossia una funzione che all'interno contiene un integrale, ma ammetto di non aver letto il tuo codice.

Eh si, però devo per forza usare questa forma..., grazie.
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 818 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

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

Capisco, scusami ma non lo ricordavo e nella traccia non c'è scritto... Il problema è che la tua $F$ è definita in modo tale da prendere un linspace (per utilizzare la formula di quadratura), ma il primo addendo della funzione non deve essere un linspace, ma solamente uno scalare ($x$).
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2999 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, 19:50

feddy ha scritto:Capisco, scusami ma non lo ricordavo e nella traccia non c'è scritto... Il problema è che la tua $F$ è definita in modo tale da prendere un linspace (per utilizzare la formula di quadratura), ma il primo addendo della funzione non deve essere un linspace, ma solamente uno scalare ($x$).

Si esatto, comunque non devi scusarti di niente, non ho capito perchè ti dovresti scusare, se parli della forma ahimè come ti ho detto non mi è concesso usare codici troppo fuori da quelli fatti nel corso (non posso definire funzioni con altre funzioni anche da me create ma solo con gli handle o valutandole nei nodi)... però l'idea di usare la roba composita è direi diretta, poi bisogna vedere come usarla bene.
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 820 di 1184
Iscritto il: 26/08/2022, 09:15

Re: Polinomio composito e area di una funzione integrale

Messaggioda feddy » 12/07/2023, 19:55

Se vuoi usare questa forma ti è sufficiente aggiustare la $F$ in questo modo:

Codice:
F=@(x)(x(end)-(x(:,end)-0)/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))) );


Nota l'x(end) all'inizio. Il resto è uguale :smt023
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3002 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, 19:59

feddy ha scritto:Se vuoi usare questa forma ti è sufficiente aggiustare la $F$ in questo modo:

Codice:
F=@(x)(x(end)-(x(:,end)-0)/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))) );


Nota l'x(end) all'inizio. Il resto è uguale :smt023

Se posso chiedere vai prendere tutto il vettore $x$ per omogeneizzare il fatto che sia una funzione definita vettorialmente? Devo essere sincero questa formula non l ho mai capita appieno proprio perchè utilizza vettori e tutto su una funzione e nel corso non è stato spiegato minimamento come funziona una funzione su matlab a piu variabili (ovviamente so come funzionano le funzioni a piu variabili, intendo direi cosa fa matlab in questo caso per definire la funzione ) però vorrei capire bene su matlab cosa fa, passo dopo passo.
“E ora sono diventato la morte. Il distruttore di mondi” J. Robert Oppenheimer
andreadel1988
Senior Member
Senior Member
 
Messaggio: 822 di 1184
Iscritto il: 26/08/2022, 09:15

Prossimo

Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite