Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Kondition von Matrixpotenzen
Thema eröffnet 2021-05-07 17:03 von s-amalgh
Druckversion
Druckversion
Antworten
Antworten
Seite 2   [1 2]   2 Seiten
Autor
Universität/Hochschule Kondition von Matrixpotenzen
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.40, eingetragen 2021-05-12


2021-05-12 17:40 - s-amalgh in Beitrag No. 39 schreibt:
du meintest vielleicht die Funktion Konditionszahl weil relativen_fehler hat nur for schleife

Nein, ich meinte schon relativen_fehler.

Tatsächlich enthält diese Funktion bei dir eine for-Schleife, aber das ist nicht, was ich vorgeschlagen hatte:

2021-05-11 01:37 - zippy in Beitrag No. 31 schreibt:
2. Eine Funktion von $k$ zur Berechnung des relativen Fehlers.

Aber du musst meinen Vorschlag nicht umsetzen. Es ist ja nur ein Vorschlag.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.41, vom Themenstarter, eingetragen 2021-05-12


Jetzt ist so wie du gemeint hast oder?
Matlab
function Alghabra04
 
  function [x] = konditionszahl(k)
 
    # A^k zeigen
    disp("\nA^k :\n")
    A^k
 
    #die Lösung x berechnen
    disp("die Loesung x :\n")
    x = mldivide(A^k,(A^(k-1)) * b)
 
    # Konditionszahl von A^k berechnen
    disp("Konditionszahl von A^k ist : \n")
    c = cond(A^k)
 
    #Das Produkt aus  Maschinengenauigkeit eps und der Konditionszahl berechnen
    disp("Produkt aus  Maschinengenauigkeit eps und der Konditionszahl : ")
    produkt = c*eps
 
 
  end
 
  function relativen_fehler(k)
    #Der relative Fehler für A^k
    fehler = norm(A^k \ (A^(k-1) * b) - [1 ; 2 ;-1]) / norm([1 ; 2 ;-1]) 
 
    #Die relativen Fehler berechnen
    r = 1:35;
    for k = r
    c(k) = cond(A^k);
    c1(k) = cond(A^k)*eps;
    f(k) = norm(A^k \ (A^(k-1) * b) - [1 ; 2 ;-1]) / norm([1 ; 2 ;-1]);
 
    end
 
  end
 
    #Eingabe der Matrix und rechter Seite  
    A = [2 4 -5; 1 2 0; -4 12 6];
    b = [15; 5; 14];
 
    # Aufruf die Funktione
    konditionszahl(3)
    relativen_fehler(3)
 
    #halblogarithmischer Plot
    semilogy(1:35, c1, 1:35, f)
    legend({"Konditionszahl von A^k ","die relativen Fehler mit der Fehlerschaetzung "},"Location","southeast")   #legend
 
 
end
 


Ich habe eigentlich noch eine Frage \sourceon Matlab
function [x] = konditionszahl(k)
\sourceoff
Wofür benutzt man [x] ? Ich habe das auf google gesehen aber ich weiß nicht ob ich das schreiben muss oder nicht
Könntest du mir bitte das erklären und meinen Code auch wieder sehen?
Danke im Voraus!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.42, eingetragen 2021-05-12


2021-05-12 18:06 - s-amalgh in Beitrag No. 41 schreibt:
Jetzt ist so wie du gemeint hast oder?

Nein, die Funktion berechnet ja immer noch etwas anderes als den relativen Fehler für dieses $k$.

2021-05-12 18:06 - s-amalgh in Beitrag No. 41 schreibt:
Wofür benutzt man [x]

Mit dem $x$ sagst du, welche Variable dem Rückgabewert der Funktion entsprechen soll. In deinem Code weist du tatsächlich $x$ einen Wert zu, aber von diesem Wert machst du später keinen Gebrauch mehr.

Die eckigen Klammern brauchst du nur, wenn es um mehrere Rückgabewerte geht (siehe hier den Abschnitt "Function with One Output").



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Buri
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 02.08.2003
Mitteilungen: 46396
Wohnort: Dresden
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.43, eingetragen 2021-05-12


Hi s-amalgh,
ich hatte befürchtet, dass Matlab die Matrixpotenz Ak nicht wie gewünscht berechnet. Es ist möglicherweise so, dass das (i,j)-Element von Ak gleich der Potenz (aij)k ist, die Potenzierung also elementweise erfolgt und nicht als Matrixpotenz.
Das müsste man an Hand einer Testmatrix, zum Beispiel fed-Code einblenden feststellen, die elementweise Potenz wäre fed-Code einblenden , während die Matrixpotenz gleich fed-Code einblenden ist.
Glücklicherweise wird die Matrixpotenz von Matlab durch Ak richtig berechnet, siehe Beitrag #45.
Gruß Buri



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.44, vom Themenstarter, eingetragen 2021-05-12


"Nein, die Funktion berechnet ja immer noch etwas anderes als den relativen Fehler für dieses k."

wieso rechnet was anders? ich habe k= 3 geschcrieben

fehler =   5.3051e-016
das ist jetzt der relative Fehler von k=3 wieso falsch?





Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.45, eingetragen 2021-05-12


2021-05-12 18:19 - Buri in Beitrag No. 43 schreibt:
ich befürchte, dass Matlab die Matrixpotenz Ak nicht wie gewünscht berechnet.

Das ist Unsinn, du verwechselst "^" und ".^":
MATLAB
1> A = [1, 2; 3, 4]
A =
 
   1   2
   3   4
 
2> A^2
ans =
 
    7   10
   15   22
 
3> A.^2
ans =
 
    1    4
    9   16


[Die Antwort wurde nach Beitrag No.43 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.46, vom Themenstarter, eingetragen 2021-05-12


"Nein, die Funktion berechnet ja immer noch etwas anderes als den relativen Fehler für dieses k."

wieso rechnet was anders? ich habe k= 3 geschcrieben

fehler =   5.3051e-016
das ist jetzt der relative Fehler von k=3 wieso falsch?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.47, eingetragen 2021-05-12


2021-05-12 18:22 - s-amalgh in Beitrag No. 44 schreibt:
ich habe k= 3 geschcrieben

Danach berechnest du ihn aber für alle $k$ von 1 bis 35.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.48, vom Themenstarter, eingetragen 2021-05-12


"Danach berechnest du ihn aber für alle k von 1 bis 35."

ja aber ich muss es für alle k von 1 bis 35 für halblogarithmischen Plot




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.49, eingetragen 2021-05-12


2021-05-12 18:28 - s-amalgh in Beitrag No. 48 schreibt:
ja aber ich muss es für alle k von 1 bis 35 für halblogarithmischen Plot

Du kannst ja diese Funktion für $k$ von 1 bis 35 aufrufen.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.50, vom Themenstarter, eingetragen 2021-05-12


meinst du dass ich noch eine andere Funktion schreiben?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.51, vom Themenstarter, eingetragen 2021-05-12


Könntest du mir bitte das schreiben? ich wäre dankbar
Danke im Voraus!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.52, eingetragen 2021-05-12


Ich skizziere mal, was ich meinte:
MATLAB
function Alghabra04
 
  A = [2, 4, -5; 1, 2, 0; -4, 12, 6]
  b = [15; 5; 14]
  x = [1; 2; -1]
  r = 1:35
 
  function c = konditionszahl(k)
    c = cond(A^k)
  end
 
  function f = relativer_fehler(k)
    f = norm(A^k \ (A^(k-1) * b) - x) / norm(x)
  end
 
  for k = r
    c(k) = konditionszahl(k)
    f(k) = relativer_fehler(k)
  end
 
  % Teil a)
  semilogy(r, c)
 
  % Teil b)
  semilogy(r, c * eps, r, f)
 
end

[Die Antwort wurde nach Beitrag No.50 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.53, vom Themenstarter, eingetragen 2021-05-12


soll ich keinen Wert für k geben? als Beispiel um A^k und konditioszahl und Produkt und fehler zu rechnen?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.54, eingetragen 2021-05-12


2021-05-12 19:06 - s-amalgh in Beitrag No. 53 schreibt:
soll ich keinen Wert für k geben? als Beispiel um A^k und konditioszahl und Produkt und fehler zu rechnen?

Das kannst du machen, in der Aufgabe verlangt werden aber nur die beiden Plots (den für Teil a) habe ich oben noch ergänzt).



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.55, vom Themenstarter, eingetragen 2021-05-12


in der Aufgabe verlangt wird das Gleichungssystem für k = 1,....  , 35 zu lösen.
Wo sollte ich das schreiben "x1 = mldivide(A^k,(A^(k-1)) * b)" ?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.56, eingetragen 2021-05-12


2021-05-12 20:01 - s-amalgh in Beitrag No. 55 schreibt:
in der Aufgabe verlangt wird das Gleichungssystem für k = 1,....  , 35 zu lösen.

Das wird hier gemacht:

2021-05-12 18:57 - zippy in Beitrag No. 52 schreibt:
f = norm(A^k \ (A^(k-1) * b) - x) / norm(x)


2021-05-12 20:01 - s-amalgh in Beitrag No. 55 schreibt:
Wo sollte ich das schreiben "x1 = mldivide(A^k,(A^(k-1)) * b)" ?

Warum willst du das denn noch irgendwo hinschreiben?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.57, vom Themenstarter, eingetragen 2021-05-12


"f = norm(A^k \ (A^(k-1) * b) - x) / norm(x)"

das ist um die relativen Fehler zu rechnen oder ?



"Lösen Sie für  k = 1; : : : ; 35 das Gleichungssystem A^k x = A^k−1 b mit einem bereits in MATLAB implementierten Löser für lineare Gleichungssysteme (z.B. mldivide)"

So steht in der Aufgabe und wie ich verstanden habe ich muss das Gleichungssystem durch mldivide lösen deswegen will ich x1  irgendwo hinschreiben



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2276
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.58, eingetragen 2021-05-12


2021-05-12 20:20 - s-amalgh in Beitrag No. 57 schreibt:
So steht in der Aufgabe und wie ich verstanden habe ich muss das Gleichungssystem durch mldivide lösen deswegen will ich x1  irgendwo hinschreiben

Der Ausdruck $A^k\setminus(A^{k-1}\cdot b)$ ist die Lösung des Gleichungssystems. Warum willst du dieses Zwischenergebnis einer Variablen zuweisen?

Aber wenn du Spaß daran hast, kannst du das natürlich tun. Schreib
x1 = A^k \ (A^(k-1) * b)
f = norm(x1 - x) / norm(x)

statt
f = norm(A^k \ (A^(k-1) * b) - x) / norm(x)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.59, vom Themenstarter, eingetragen 2021-05-13


Alles klar, Vielen vielen Dank für deine tolle Hilfe! :))



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 16.12.2020
Mitteilungen: 98
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.60, vom Themenstarter, eingetragen 2021-05-15


Könntest du mir bitte dabei helfen ?
LinkLineare Ausgleichsrechnung und Normalgleichung
Danke im Voraus! :)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
s-amalgh hat die Antworten auf ihre/seine Frage gesehen.
s-amalgh hatte hier bereits selbst das Ok-Häkchen gesetzt.
s-amalgh wird per Mail über neue Antworten informiert.
Seite 2Gehe zur Seite: 1 | 2  
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]