Ich schreibe ein Programm, das die LU-Dekomposition einer Matrix mit partieller Pivotisierung berechnet und möchte, dass die Funktion mehrere (2 oder 3) Matrizen ausgibt, ohne das Programm mehrmals auszuführen, um jedes einzeln auszugeben, was a ist Zeitverschwendung, da es mir alles bringt, was ich will. Gibt es eine Möglichkeit, dies zu tun? Zum Beispiel ist hier meine Funktion, die den Algorithmus von Doolittle verwendet, für die quadratische Matrix, die nicht geschwenkt werden muss. Ich möchte, dass meine Ausgabe gleichzeitig Matrix und Du ist, aber ich weiß keine Möglichkeit, das zu tun.Wie man 2 oder mehr Felder in einer Fortran-Funktion ausgibt?
function lu_d(aa) result(l)
real, dimension (:,:) :: aa !input matrix
real, dimension (size(aa,1), size(aa,2)) :: a !keeping input variable intact
real, dimension (size(a,1), size(a,2)) :: l , u !lower and upper matrices
integer :: i,j,k !index
real :: s !auxiliar variable
a=aa
do j=1 , size(a,2)
u(1,j)=a(1,j)
end do
l(1,1)=1
do j=2, size(a,2)
l(1,j)=0
end do
do i=2, size(a,1)
l(i,1)=a(i,1)/u(1,1)
u(i,1)=0
do j=2, i-1
s=0
u(i,j)=0
do k=1, j-1
s=s+l(i,k)*u(k,j)
end do
l(i,j)=(a(i,j)-s)/u(j,j)
end do
l(i,i)=1
do j=i, size(a,2)
s=0
l(i,j)=0
do k=1, i-1
s=s+l(i,k)*u(k,j)
end do
u(i,j)=a(i,j)-s
end do
end do
end function
Verwenden Sie immer tag [tag: Fortran]. Fügen Sie zur Unterscheidung eine bestimmte Version hinzu. Nur eine sehr kleine Anzahl von Leuten folgen [Tag: Fortran95]. –
Natürlich gibt es eine Möglichkeit, so etwas zu tun, aber Sie sollten sich etwas Mühe geben. Wie sieht dein Code aus? Welche Probleme hast du? –
Ich suche online nach Informationen, aber ich habe nichts darüber gefunden. Ich werde den Beitrag bearbeiten und meinen Code hinzufügen! Einen Augenblick. –