Ich möchte Gauss-Legendre Quadratur verwenden, um ein Doppelintegral zu bewerten. Ich kam mit dem folgenden CodeDoppelte Integration mit Gauss-Legendre Quadratur
m=5000;
%generate weights and abscissas
[wx,xx]=leg(-1,1,m);
[wy,xy]=leg(-1,1,m);
%define function
[email protected](x,y) hypergeom(-1./4,3./2,x.^2.*y.^6);
%integrate with respect to x
intx=zeros(1,m);
for num=1:m
intx(num)=sum(wx.*psi(xx,yx(num)));
end
sum(wy.*intx)
Ich benutze die Schreibweise Bein (x1, x2, m) die Gewichte und abscissas zur Erzeugung von bis.
Gibt es eine andere Möglichkeit, diesen Code schneller auszuführen?
Warum Sie definieren nicht die psi außerhalb der for-Schleife? Trotzdem sollte dies nicht Ihr Engpass sein. Haben Sie versucht, Ihren Code zu erstellen? Sie können es über den Button "Run and time" erreichen. –
Wenn ich psi außerhalb der for lopp stelle, tritt ein Fehler auf. Es sagt, dass die vatiable y ist undefined – PhilCsar
versuchte Ihren Vorschlag, aber der Code läuft immer noch sehr langsam – PhilCsar