| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
 | MAIT erhält den Abas Partner Performance Award 2025, eine Pressemitteilung
|
Autor
|
Thema: Zusammengesetzte Funktion mit Bereichsvektor und Listenfeld (3060 mal gelesen)
|
lamond Mitglied

 Beiträge: 10 Registriert: 19.11.2011
|
erstellt am: 19. Nov. 2011 14:57 <-- editieren / zitieren --> Unities abgeben:         
Liebe Forumsmitglieder, ich habe ein Problem mit Mathcad. Um genauer zu sein, handelt es sich um ein Listenfeld und zusammengesetzten Funktionen. Im Anhang wird deutlich, was ich genau damit meine. Die Listenfelder spreche ich mit einer IF-Zuweisung an. Das funktioniert auch wunderbar, bis ich allerdings zusammengesetzte Funktionen habe, die entsprechend der Vektorvariable bzw. deren Werten zugeordnet werden sollen. Ich hoffe mir kann bei diesem Problem geholfen werden, da ich langsam am verzweifeln bin und nicht auf den richtigen Lösungsansatz komme. Viele Grüße! [Diese Nachricht wurde von lamond am 29. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
    
 Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 19. Nov. 2011 22:55 <-- editieren / zitieren --> Unities abgeben:          Nur für lamond
|
lamond Mitglied

 Beiträge: 10 Registriert: 19.11.2011
|
erstellt am: 20. Nov. 2011 12:05 <-- editieren / zitieren --> Unities abgeben:         
Vielen Dank erstmal für die Hilfe und Mühe! Leider funktioniert es so auch nicht bei mir. Ich habe mal Bilder hochgeladen, damit man mein Vorhaben evtl. besser nachvollziehen kann. Es klappt wunderbar bei den Funktionen, die nicht zusammengesetzt sind. [Diese Nachricht wurde von lamond am 29. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamond Mitglied

 Beiträge: 10 Registriert: 19.11.2011
|
erstellt am: 20. Nov. 2011 12:53 <-- editieren / zitieren --> Unities abgeben:         
Anbei die Funktion, welche bei fk=2 herauskommt. Leider ist das nicht die Richtige. Wenn ich Am Ende der Zuweisungszeile für die Definition von f(z,fk) das f(z,fk)als Ausgabeargument hinzufüge, rechnet er zu lange und es bringt den Rechner zum Absturz. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
    
 Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 20. Nov. 2011 13:42 <-- editieren / zitieren --> Unities abgeben:          Nur für lamond
Hi, Du hast aber Deine Vorgehungsweise nicht geaendert, wie ich von Deinen beigelegten Bildern sehen kann. Ich rede jetzt nicht von den Faellen, wo fk nicht = 2 ist. Du musst Dir schon meinen Beitrag etwas genauer ansehen. Um die Sache hoffentlich mal klar zu machen: wie soll die Schleife wissen, was der Wert "z" zu jedem Zeitpunkt ist? "z" wird ausserhalb der Schleife inkrementiert und was draussen ist, bleibt auch draussen. Nimm das erste "if fk <- 2" bei mir raus. Shiebe alle Ableitungen auch mit in die Schleife und nenne das Resultat "Res2" oder was immer. Mach das selbe bei allen anderen Kurvenscheibenversionen, dann kannst Du zum Schluss mit einem "Res:= if(fk=1,Res1,if(fk=2,Res2 ... usw das alles auseinander puhlen und das Gesammtresultat darstellen. Gruss [Diese Nachricht wurde von Clayton am 29. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamond Mitglied

 Beiträge: 10 Registriert: 19.11.2011
|
erstellt am: 28. Nov. 2011 14:38 <-- editieren / zitieren --> Unities abgeben:         
|
Clayton Ehrenmitglied Konstrukteur
    
 Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 28. Nov. 2011 16:16 <-- editieren / zitieren --> Unities abgeben:          Nur für lamond
Hi, Du vermischst Matrizen mit Funktionen. Du solltest alles als Matrizen behandeln. Deshalb meine originale Frage: was soll dabei rauskommem? Wenn im Endeffekt jemand die Funktionen intakt sehen soll, dann geht's so nicht. Wenn es aber darum geht, die Grafiken zu erstellen und Deine Kennwerte je nach dem Wert von "fk" rauszuklauben, dann mach's so, wie ich geagt habe und vergiss die Funktionen. Apropos, Dein Wert von n=1500 ist sehr hoch und wenn Du Hub, Geschwindigkeit, Beschleunigung e.t.c alles in einer Schleife vereinigst, kann der Rechner schon in die Knie gehen. Gruss [Diese Nachricht wurde von Clayton am 29. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamond Mitglied

 Beiträge: 10 Registriert: 19.11.2011
|
erstellt am: 28. Nov. 2011 16:36 <-- editieren / zitieren --> Unities abgeben:         
Hi, also ich würde nicht Vektorvariablen formulieren, aber ich muss die Kennwerte herausbekommen (Min-/ Max-Werte der Ausgabe). Bei Bereichsvariablen kann ich das so nicht. Im Endeffekt möchte ich am Ende Übertragungsfunktionen herausbekommen, die ich am Besten im Excel-Format exportiere. Das Listenfeld ist nur eine Komfortsache. Es geht also in Matchad und dem Listenfeld nicht, es sei denn meine Funktion wandle ich in einen Funktionsvektor um, habe ich das richtig verstanden? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
    
 Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 29. Nov. 2011 02:55 <-- editieren / zitieren --> Unities abgeben:          Nur für lamond
Zitat: Original erstellt von lamond: ... aber ich muss die Kennwerte herausbekommen (Min-/ Max-Werte der Ausgabe). Bei Bereichsvariablen kann ich das so nicht.
Hi, Und warum geht das nicht? Zugegeben, der Bereich muss in diesem Fall so ausgewaehlt werden, dass Du genaue Werte erhaelst. Aber das duerfte so schwierig nicht sein. Guck Dir nochmal mein Bild weiter oben an, ich habe da einige Werte angezeigt. Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamond Mitglied

 Beiträge: 10 Registriert: 19.11.2011
|
erstellt am: 29. Nov. 2011 10:30 <-- editieren / zitieren --> Unities abgeben:         
|
lamond Mitglied

 Beiträge: 10 Registriert: 19.11.2011
|
erstellt am: 29. Nov. 2011 13:36 <-- editieren / zitieren --> Unities abgeben:         
[QUOTE]Original erstellt von lamond: [i]Hallo, Ich hatte die Funktion "round" vergessen...i MUSS ja beim Inkrementieren ganzzahlig sein! Es kommt auf mein n an...wenn es wie in meinem Fall n=150 ist, dann habe ich bei 1/8*n ja automatisch KEINE ganze Zahl! DANKE Clayton!!
[Diese Nachricht wurde von lamond am 30. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
    
 Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon 64X2 5600+, 1GB, Nvidia Quadro Pro FX 1100 Inventor Series 10 Mathcad 13
|
erstellt am: 29. Nov. 2011 13:47 <-- editieren / zitieren --> Unities abgeben:          Nur für lamond
Hi, 1. Wenn Du genaue Werte fuer max(..) oder min(..) haben willst, muss die Bereichszahl schon durch 8 teilbar sein (jedenfalls bei fk=2) und dann brauchst Du round(..) nicht mehr. 2. Ich habe das nur fuer fk=1 und fk=2 gemacht, fuer den Testfall genug. 3. Du solltest alles nach dem selben Schema machen. Du kannst die ganzen Schleifen dann in Mathcad in einer "region" verstecken. Dann weiss keiner, was los ist, und man sieht nur die Liste und das Endresultat. Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |