Polinomio composito e area di una funzione integrale

Angus1956
Consideriamo il seguente esercizio:



Ho io scritto questo codice

Script:

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:

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:

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?
.

Risposte
feddy
Occhio, x(:,end) non è un matrice, ma un vettore colonna! E soprattutto andava corretto il termine x(:,end)-0 che segue. Quello rappresentava il $(b-a)$ che moltiplica la formula di integrazione. Tuttavia, in questo caso, $b$ valeva sì x(:, end), ma $a$ valeva $-1$. Quindi $b-a=x- (-1)=x+1$. Scusami ma stavo dando per scontato che $F$ fosse corretta senza guardarla in pratica.

Angus1956
Se $F$ fosse stato della forma $f(x)+\int_-1^{x}g(t)dt$ avrei dovuto mettere $f(x( :,end))+...$ giusto? tipo se $f(x)=x^2$ allora $(x( :,end))^2$?

Angus1956
"feddy":
Occhio, x(:,end) non è un matrice, ma un vettore colonna! E soprattutto andava corretto il termine x(:,end)-0 che segue. Quello rappresentava il $(b-a)$ che moltiplica la formula di integrazione. Tuttavia, in questo caso, $b$ valeva sì x(:, end), ma $a$ valeva $-1$. Quindi $b-a=x- (-1)=x+1$. Scusami ma stavo dando per scontato che $F$ fosse corretta senza guardarla in pratica.

Si il $-1$ lo avevo detto io (quando ho detto che andava integrata da $-1$ a $x$, non so se avevi visto il messaggio avevi scritto pure edit), non se ti ricordi ahahha, però si grazie mille

feddy
"andreadel1988":
Se $ F $ fosse stato della forma [...]



Scusami, avevo perso il messaggio riguardo al "-1".

Angus1956
"feddy":
[quote="andreadel1988"]Se $ F $ fosse stato della forma [...]



Scusami, avevo perso il messaggio riguardo al "-1".[/quote]
Non ti preoccupare, anzi grazie mille dell'aiuto

Angus1956
"andreadel1988":
Se $F$ fosse stato della forma $f(x)+\int_-1^{x}g(t)dt$ avrei dovuto mettere $f(x( :,end))+...$ giusto? tipo se $f(x)=x^2$ allora $(x( :,end))^2$?

Il problema è che con i vettori non si può fare $(x( :,end))^2$, credo che per forza debba fare con approssimazione puntuale.

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