Μάθημα : Γραμμική Άλγεβρα και Μιγαδικοί Αριθμοί
Κωδικός : TP392
Θέματα - Λύσεις - Αποτελέσματα 1ης προόδου γραμμικής Άλγεβρας
1η Πρόοδος (18/11)
Με τη χρήση του βρόγχου επανάληψης While (ή και όχι) και της συνάρτησης randi() δημιουργήστε έναν τυχαίο τετραγωνικό πίνακα Α με τιμές μεταξύ του διαστήματος [1,5] και με διαστάση 2 έως 8 (2,5 μονάδες)
Με τη χρήση του αλγορίθμου της απαλοιφής Gauss μετατρέψτε τον πίνακα σε άνω τριγωνικό και υπολογίστε την ορίζουσα και το ίχνος του πίνακα πολλαπλασιάζοντας και προσθέτοντας τα διαγώνια στοιχεία του με τη χρήση του βρόγχου επανάληψης for. Έπειτα ελέγξτε με τις συναρτήσεις det() και trace() αν συμπίπτουν τα αποτελέσματα σας και τυπώστε αντίστοιχο μήνυμα. (2,5 μονάδες)
Δημιουργείστε τυχαίο τετραγωνικό πίνακα Z με τιμές μεταξύ του διαστήματος [1,5] και με διάσταση 2 έως 100. Δημιουργείστε τυχαίο στυλοδιάνυσμα W με τον αντίστοιχο αριθμό σειρών ώστε να μπορεί να λυθεί το σύστημα με τη χρήση Ζx=W. Χρησιμοποιώντας τον κανόνα του Cramer λύστε το σύστημα με τη χρήση του βρόγχου επανάληψης for με αριθμό επαναλήψεων ίσο με το length(Z). (3 μονάδες)
Προκειμένου να λύσετε το ίδιο σύστημα διασπάστε τον πίνακα Ζ σε άνω (U) και κάτω (L) τργωνικο με τη χρήση της απαλοιφής Gauss έτσι ώστε ο U να είναι ο άνω τριγωνικός μετά την απαλοιφή Gauss και ο L να περιέχει τους πολλαπλασιαστές m του αλγορίθμου.
Bonus μιας μονάδας αν το πρόγραμμα δεν έχει συντακτικά λάθη.
N= randi([2,8]);
A = randi([1,5],N,N);
for j=1:N-1
for i=j+1:N
m=A(i,j)/A(j,j);
A(i,:) = A(i,:) -m*A(j,:);
endfor
endfor
T=0;
D=1;
for i=1:N
D=A(i,i)*D;
T=A(i,i)+T;
endfor
if D==det(A) && T==trace(A)
disp('ok')
else
disp('not ok')
endif
N=randi([2,100]);
Z=randi([1,5],N,N);
W=randi([1,5],N,1);
for i=1:length(Z)
C=Z;
C(:,i)=W;
x1(i) = det(C)/det(Z);
endfor
U=Z;
L=eye(N);
for j=1:N-1
for i=j+1:N
m=U(i,j)/U(j,j);
U(i,:) = U(i,:) -m*U(j,:);
L(i,j)=m;
endfor
endfor
y=L\W; x2 = U\y;
for i=1:N
if abs(x1(i)-x2(i))<0.001
disp('ok')
elsedisp('not ok')
endif
endfor
1η Πρόοδος (18/11)
Με τη χρήση του βρόγχου επανάληψης While και της συνάρητησης randi() δημιουργήστε έναν τυχαίο τετραγωνικό πίνακα Ζ με τιμές μεταξύ του διαστήματος [1,5] και με διαστάση 2 έως 8, έως ότου να γίνεται η πράξη Ζ*Ζ (2,5 μονάδες)
Με τη χρήση του αλγορίθμου της απαλοιφής Gauss μετατρέψτε τον πίνακα σε κάτω τριγωνικό και υπολογίστε την ορίζουσα και το ίχνος του πίνακα πολλαπλασιάζοντας και προσθέτοντας τα διαγώνια στοιχεία του με τη χρήση του βρόγχου επανάληψης for. Έπειτα ελέγξτε με τις συναρτήσεις det() και trace() αν συμπίπτουν τα αποτελέσματα σας και τυπώστε αντίστοιχο μήνυμα. (2,5 μονάδες)
Δημιουργείστε τυχαίο τετραγωνικό πίνακα Α με τιμές μεταξύ του διαστήματος [1,5] και με διάσταση 2 έως 50. Δημιουργείστε τυχαίο στυλοδιάνυσμα Β με τον αντίστοιχο αριθμό σειρών ώστε να μπορεί να λυθεί το σύστημα με τη χρήση Αx=Β. Χρησιμοποιώντας τον κανόνα του Cramer λύστε το σύστημα με τη χρήση του βρόγχου επανάληψης for με αριθμό επαναλήψεων ίσο με το length(A). (3 μονάδες)
Προκειμένου να λύσετε το ίδιο σύστημα μετατρέψτε τον πίνακα Α σε διαγώνια μορφή με τη χρήση της απαλοιφής Gauss έτσι ώστε να μπορείτε με τη χρήση του βρόγχου επανάληψης for να αντιστρέψετε τα στοιχεία του πίνακα και να λύσετε το σύστημα πολλαπλασιάζοντας τον αντίστροφο του Α με το νέο στυλοδιάνυσμα Β (x = A-1 B). (2 μονάδες)
k=0;
while k<1
Z = randi([1,5], randi([2,8]), randi([2,8]));
if size(Z)(1)==size(Z)(2)
k=1;
endif
endwhile
N=length(Z);
for j=N:-1:1
for i=j-1:-1:1
m=Z(i,j)/Z(j,j);
Z(i,:) = Z(i,:) -m*Z(j,:);
endfor
endfor
T=0;
D=1;
for i=1:N
D=Z(i,i)*D;
T=Z(i,i)+T;
endfor
if D==det(Z) && T==trace(Z)
disp('ok')
else
disp('not ok')
endif
N=randi([2,50]);
A=randi([1,5],N,N);
B=randi([1,5],N,1);
for i=1:N
C=A;
C(:,i)=B;
x1(i) = det(C)/det(A);
endfor
Ag = [A B]
for j=1:N-1
for i=j+1:N
m=Ag(i,j)/Ag(j,j);
Ag(i,:)=Ag(i,:)-m*Ag(j,:);
endfor
endfor
for j = N:-1:1
for i = j-1:-1:1
m = Ag(i,j)/Ag(j,j);
Ag(i,:) = Ag(i,:) - m * Ag(j,:);
end
end
A= Ag(:,1:N);
B = Ag(:,N+1);
for i=1:N
Inv=A(i,i).\1
x2(i) = Inv*B(i);
endfor
for i=1:N
if abs(x1(i)-x2(i))<0.001
disp('ok')
else
disp('not ok')
endif
endfor
Αποτελέσματα
| 3 | ΤΜ20412 |
| 5 | ΤΜ20746 |
| 2.5 | ΤΜ20757 |
| 1.5 | ΤΜ20793 |
| 5.5 | ΤΜ20785 |
| 7 | ΤΜ20781 |
| 6.5 | ΤΜ20759 |
| 2.5 | ΤΜ20740 |
| 4 | ΤΜ20756 |
| 2 | ΤΜ20735 |
| 2 | ΤΜ20721 |
| 2.5 | ΤΜ20687 |
| 2 | ΤΜ20695 |
| 6.5 | ΤΜ20797 |
| 2.5 | ΤΜ20794 |
| 2 | ΤΜ20782 |
| 2.5 | ΤΜ20698 |
| 2 | ΤΜ20690 |
| 2 | ΤΜ20753 |
| 2 | ΤΜ20708 |
| 3.5 | ΤΜ20704 |
| 2 | ΤΜ20749 |
| 6 | ΤΜ20774 |
| 3.5 | ΤΜ20775 |
| 3.5 | ΤΜ20783 |
| 6.5 | ΤΜ20786 |
| 5 | ΤΜ20638 |
| 4 | ΤΜ20792 |
| 4.5 | ΤΜ20784 |
| 2 | ΤΜ20710 |
| 2 | ΤΜ20773 |
| 1.5 | ΤΜ20795 |
| 4 | ΤΜ20725 |
| 3 | ΤΜ20719 |
| 2 | ΤΜ20733 |
| 4.5 | ΤΜ20688 |
| 3 | ΤΜ20788 |
| 7 | ΤΜ20731 |
| 2 | ΤΜ20763 |
| 2.5 | ΤΜ20761 |
| 5 | ΤΜ20645 |
| 8.5 | ΤΜ20566 |
| 3 | ΤΜ20739 |
| 5 | ΤΜ20776 |
| 1.5 | ΤΜ20791 |
| 5.5 | ΤΜ20743 |
| 6.5 | ΤΜ20806 |
| 6 | ΤΜ20804 |
| 6 | ΤΜ20689 |
| 5 | ΤΜ20700 |
| 3.5 | ΤΜ20770 |
| 4 | ΤΜ20789 |
| 6 | ΤΜ20765 |
| 3 | ΤΜ20796 |
| 3 | ΤΜ20741 |
| 2.5 | ΤΜ20713 |
| 7 | ΤΜ20790 |
| 9.5 | ΤΜ20778 |
| 3.5 | ΤΜ20787 |
| 2 | ΤΜ20723 |
| 2.5 | ΤΜ20592 |
| 1.5 | ΤΜ20808 |
| 3.5 | ΤΜ20807 |
| 1.5 | ΤΜ20810 |
| 3.5 | ΤΜ20676 |
| 4 | ΤΜ20595 |
| 3 | ΤΜ20650 |
| 6 | ΤΜ20663 |
| 1.5 | ΤΜ20672 |
| 3 | ΤΜ20679 |
| 5 | ΤΜ20682 |
| 8 | ΤΜ20477 |
| 6 | ΤΜ20801 |