www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Maple" - Zufällige Vektoren erstellen
Zufällige Vektoren erstellen < Maple < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Zufällige Vektoren erstellen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:35 Sa 24.11.2007
Autor: mcyonx

Aufgabe
Für n,k [mm] \in \IN [/mm] soll eine Liste [] mit k zufälligen Vektoren der Länge n mit Einträgen aus [mm] \IZ [/mm] vom Betrag <100 erzeugt werden.

Ich habe bisher folgendes geschrieben:
aufgabea:=proc(n,k);

> with(LinearAlgebra):
> for i from 1 to k do
> s:=0;
> s:=RandomVector(n):
> list1:=[];
> [op(list1),s];
> od;

end proc;

Bisher gibt er auch Vektoren der Länge n aus, aber immer nur einen. Kann mir einer auf die Sprünge helfen woran es liegt?

Gruß
mcyonx

        
Bezug
Zufällige Vektoren erstellen: Antwort
Status: (Antwort) fertig Status 
Datum: 17:09 Sa 24.11.2007
Autor: Martin243

Hallo,

du machst zwei Fehler:
1. Du setzt deine Liste list1 in jedem Schleifendurchlauf auf [].
2. Du fügst ihr auch nie etwas hinzu.

Also überleg, wo das list1 := [] hin soll, damit es nur zu Beginn ausgeführt wird und sorg dafür, dass die Liste auch immer aktualisiert wird. Danach funktioniert es.

Zwei Anmerkungen noch:
1. Deklariere immer schön alle in der Prozedur benutzten Varaiblen als local.
2. Gib das Ergebnis der Prozedur immer explizit mit return zurück. Dann gibt es auch keine Verwechslungen, was das Ergebnis eigentlich ist.


Gruß
Martin

Bezug
                
Bezug
Zufällige Vektoren erstellen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:02 Sa 24.11.2007
Autor: traumfaenger

Hallöchen.

Ich beschäftige mich auch mit dieser Aufgabe und wollte das ein wenig "einfacher" Lösen, indem ich einfach eine Zufallsmatrix erzeuge:

k := RandomMatrix(n,k, generator=-99..99);

Die nächste Teilaufgabe lautet nämlich hier:
Bei Eingabe einer endlichen Liste L = [v1, v2, . . .] von Vektoren [mm] v_i \in \IR^n [/mm] soll überprüft werden ob die Vektoren linear unabhängig sind.

Ich dachte nun, ob ich das einfach mit diesem Befehl "linsolve" machen kann...

In der Anleitung zur Aufgabe steht, dass: Vector, RandomVector, Dimension, Multiply, solve können helfen.

Ich dachte mir nun, dass wenn ich zu meiner Zufallsmatrix eben über "linsolve" löse. Wenn das Resultat nicht der Nullvektor ist, dann sind die Dinger linear abhängig, ansonsten sind sie linear unabhängig.


Was meinst ihr?

Viele Grüße
Traumfänger

Bezug
                        
Bezug
Zufällige Vektoren erstellen: Antwort
Status: (Antwort) fertig Status 
Datum: 12:27 So 25.11.2007
Autor: Martin243

Hallo,

> Ich beschäftige mich auch mit dieser Aufgabe und wollte das ein wenig "einfacher" Lösen, indem ich einfach eine Zufallsmatrix erzeuge:

>

> k := RandomMatrix(n,k, generator=-99..99);

Du meintest wohl eher:
m := RandomMatrix(n,k, generator=-99..99);
Wenn es erlaubt ist, dann spricht nichts dagegen.


> Ich dachte nun, ob ich das einfach mit diesem Befehl "linsolve" machen kann...

Du solltest nicht die Packages linalg und LinearAlgebra verwechseln! Kleingeschriebenes gehört zu linalg, Großgeschriebenes zu LinearAlgebra! Der entsprechende Befehl heißt LinearSolve.


> In der Anleitung zur Aufgabe steht, dass: Vector, RandomVector, Dimension, Multiply, solve können helfen.

Hier stellt sich also die Frage, ob du unbedingt RandomVector nutzen musst oder auch dein obiger Anfang ok ist...


> Ich dachte mir nun, dass wenn ich zu meiner Zufallsmatrix eben über "linsolve" löse. Wenn das Resultat nicht der Nullvektor ist, dann sind die Dinger linear abhängig, ansonsten sind sie linear unabhängig.

Eher mit LinearSolve (s.o.). Aber überlege dir nochmal, ob deine Kriterien stimmen. Wenn du einen Vektor aus den anderen linear kombinieren willst, dann müssen sie linear abhängig sein, also lösbar. Falls aber nicht, dann ist das GLS eher unlösbar, oder?
Außerdem kannst du ja evtl noch die Beziehung zwischen n und k auswerten. Können 100 Vektoren mit je fünf Einträge linear unabhängig sein?


Gruß
Martin

Bezug
                                
Bezug
Zufällige Vektoren erstellen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:36 So 25.11.2007
Autor: mcyonx

Hm, ich beschäftige mich auch geade mit dem b Teil nur irgendwie komme ich nicht recht voran. Ich gebe mehrere Vektoren ein und speicher sie alle in einer Liste. Jetzt weiß ich aber nicht wie ich auf die einzelnen Listenelemente zugreifen kann und wie ich dann weiter verfahre.
Kann mir vielleicht einer einen kleinen Tip geben?

MfG mcyonx

Bezug
                                        
Bezug
Zufällige Vektoren erstellen: Antwort
Status: (Antwort) fertig Status 
Datum: 09:00 Mo 26.11.2007
Autor: Martin243

Hallo,

auf ein einzelnes Listenelement kannst du per Index in eckigen Klammern zugreifen, aber lass dich besser davon inspirieren, was die beiden anderen hier machen. Mach am besten eine Matrix daraus und schau dir das Ergebnis von LinearSolve an.


Gruß
Martin

Bezug
                        
Bezug
Zufällige Vektoren erstellen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:58 So 25.11.2007
Autor: smie

Aufgabe
Bei Eingabe einer endlichen Liste L = [v1, v2, . . .] von Vektoren $ [mm] v_i \in \IR^n [/mm] $ soll überprüft werden ob die Vektoren linear unabhängig sind.

wie kann man eine liste mit vektoren in eine matrix umwandeln ? geht das überhaupt?

hier meine überlegungen:
Ich habe eine Liste in der k Vektoren der Dimension n enthalten sind durch aufruf der Procedur:

>with(LinearAlgebra):

> vectorlist:=proc(k,n)
> local i,l:
> l:=[]:
>
> for i from 1 by 1 to n do
> l:=[op(l),RandomVector(k,generator=rand(1..100))]:
> end do:
> return l:
> end proc:

k := RandomTools[Generate](integer(range=2..10)):

> n := RandomTools[Generate](integer(range=2..10)):
> p :=vectorlist(n,k);

erstellt.
wenn nun k>n dann müssen die vektoren ja zwangsläufig linear abhängig sein.
wie kann ich nun lineare abhängigkeit der vektoren für k [mm] \le [/mm] n untersuchen?

meine idee:
erstes   element jedes vektors ergibt die erste zeile einer matrix
zweites element jedes vektors ergibt die zweite zeile einer matrix
usw. der grösse k spalten , n zeilen.
Dann will ich mit dem Befehl LibnearSolve(matrix); diese lösen.

dazu benötige ich aber eine matrix,habe aber nur eine vectorliste.

mfg smie

Bezug
                                
Bezug
Zufällige Vektoren erstellen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 08:56 Mo 26.11.2007
Autor: Martin243

Hallo,

> wie kann man eine liste mit vektoren in eine matrix umwandeln ? geht das überhaupt?

Klar! Man kann so ungefähr alles in alles umwandeln mit der Funktion convert. In deinem Falle wäre es:
m = convert(p, Matrix);


Gruß
Martin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.mathebank.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]