WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Hi, Bräuchte Hilfe bei einer Wertepaar-Aufgabe :)

 

MoeE
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2016, 18:55     Titel: Hi, Bräuchte Hilfe bei einer Wertepaar-Aufgabe :)
  Antworten mit Zitat      
Hallo Matlab Community,

ich habe etwas Probleme bei der Erstellung eines Codes zu dieser Aufgabe:

" Eine Funktion vom Typ f(x) = a+ b * x^c , die möglichst gut durch N vom Benutzer vorgegebene (x,y)-Wertepaare legt."

Die Funktion ist denke ich selbst erstellbar und sollte nur von diesem Typ sein. Die Anzahl der Wertepaare jedoch sollten vom Benutzer selbst N mal bestimmt werden.

Zudem denke ich, dass die bestimmte Stelle von der die N Werte ausgehen (Bsp. ab -5 oder so) ebenfalls bestimmt werden müsste.

Als Matlab-Neuling weiß ich nicht, wie ich hier in irgendeiner Weise vorgehen soll. Hilfe jeglicher Art dazu wäre echt der Hammer und ich würde mich sehr darüber freuen !

Danke Moe
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.07.2016, 20:35     Titel:
  Antworten mit Zitat      
Hallo,

sofern du fertige Funktionen verwenden darfst, würde ich zu lsqcurvefit raten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2016, 22:23     Titel:
  Antworten mit Zitat      
Hi Harald, danke erstmal für die Antwort.

Also wenn du mit fertiger Funktion meinst was ich denke, dann ja. Die Funktion ist halt von dem Typ f(x) = a+ b * x^c , dabei sind die Variablen a,b und c beliebig auswählbar (würde da vielleicht ganze Zahlen nehmen).

Wie genau würde das denn aussehen wenn ich den Befehl lsqcurvefit nutze bzw. was bewirkt das ?

Danke schonmal.

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.07.2016, 22:33     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
dabei sind die Variablen a,b und c beliebig auswählbar (würde da vielleicht ganze Zahlen nehmen).

Das ist sehr widersprüchlich. Eine Einschränkung auf ganze Zahlen würde das Problem deutlich verkomplizieren.

Zitat:
Wie genau würde das denn aussehen wenn ich den Befehl lsqcurvefit nutze bzw. was bewirkt das ?

Bitte lese dir die Dokumentation zu lsqcurvefit durch. Da sollten diese Fragen beantwortet werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2016, 23:08     Titel:
  Antworten mit Zitat      
Hi,

ne gibt keine Einschränkung ... man kann nehmen was man möchte.

Alles klar, dann muss ich mich erstmal über darüber erkundigen.


Danke.

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2016, 23:55     Titel:
  Antworten mit Zitat      
Code:




a = 4;
b = 5;
c = 2;

n = input ('Range from: ');
n2 = input ('to: ');

xdata = linspace(n,n2);
ydata = @(a,b,xdata,c) a + b * xdata^c;



x = lsqcurvefit(fun,x0,xdata,ydata);

plot(xdata,ydata)




 



Wäre das vielleicht ein Anfang ?

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.07.2016, 08:53     Titel:
  Antworten mit Zitat      
Hallo,

hast du den Code denn mal laufen lassen?

Da müsstest du ja eine Fehlermeldung bekommen, z.B. dass für ydata numerische Daten erforderlich sind.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 12:34     Titel:
  Antworten mit Zitat      
Hallo,

genau das ist vorgekommen. Die Fehlermeldung für ydata.

Ich habe mir aber gedacht dass der Code damit, dass ydata ausrechnet für dass zugehörige x, dass ja selbst bestimmt werden kann. Muss man die Werte für ydata selbst erst ausrechnen und dann einsetzen damit der Befehl lsqcurvefit überhaupt funktioniert ?

In meiner Aufgabe sollte der Benutzer lediglich nur angeben wie viele Wertepaare (N Wertepaare) er denn sehen bzw. haben möchte mit der Anwendung der Formel: f(x) = a+ b * x^c .
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.07.2016, 13:11     Titel:
  Antworten mit Zitat      
Hallo,

ich würde die Aufgabenstellung
Zitat:
durch N vom Benutzer vorgegebene (x,y)-Wertepaare

schon so verstehen, dass der Nutzer nicht nur die Anzahl der Wertepaare, sondern die tatsächlichen Wertepaare vorgibt. So sehen auch alle praktischen Anwendungen aus, die ich bisher gesehen habe.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 13:28     Titel:
  Antworten mit Zitat      
Hallo Harald,

aber wenn der Benutzer die Wertepaare schon vorgibt, dann ist doch die eigentliche Arbeit geleistet. Very Happy

Ich versuche das so zu gestalten, dass die "Range"oder die x-Werte für die Berechnungen eingegeben werden vom Benutzer und die dazugehörigen y-Werte nur noch ausgegeben/berechnet werden müssen. In Bezug zu der Formel.

Danke dir.

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
AKNOT
Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 12.10.11
Wohnort: Bochum
Version: R2018a
     Beitrag Verfasst am: 18.07.2016, 13:53     Titel:
  Antworten mit Zitat      
Hi,

ich sehe das genauso wie Harald, weil es für mich anders auch nicht wirklich Sinn ergeben würde. Der Nutzer gibt Wertepaare vor und die sollen mit einer Funktion der genannten Form möglichst gut widergegeben werden.

Die Arbeit besteht darin mit curvefit, die Parameter der Funktion so zu bestimmen, dass die aus den x-Werten gebildeten y-Werte möglichst gut zu den vorgegeben y-Werten passen.

Oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 13:59     Titel:
  Antworten mit Zitat      
Hallo zusammen,

nach kurzen Überlegungen gebe ich euch Recht ! Ich habe womöglich die Aufgabe etwas falsch verstanden. Das ergibt eher Sinn wenn ich mir die Aufgabenstellung nochmal durchlese.

Soll ich dann erst alle y-Werte ausrechnen und einsetzen in den Code oder wie soll ich am besten vorgehen ? Mann muss ja noch im Hinterkopf behalten, dass der Benutzer N Wertepaare vorgeben soll.

Danke.

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
AKNOT
Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 12.10.11
Wohnort: Bochum
Version: R2018a
     Beitrag Verfasst am: 18.07.2016, 14:05     Titel:
  Antworten mit Zitat      
xdata und ydata werden vom Nutzer vorgegeben. Damit gehst du einfach genauso vor wie im ersten Beispiel in der lsqcurvefit Doku, nur, dass du fun mit deiner Funktionsdefinition ersetzt.
Private Nachricht senden Benutzer-Profile anzeigen
 
MoeE
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 17.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 14:15     Titel:
  Antworten mit Zitat      
Hi,

achso ok ich probiere das mal, danke.

Ist es dabei egal was du für x und y eingibst ? Ich denke mir die ganze Zeit dass es für einen x-wert auch nur einen y-wert geben darf Very Happy .. aber dafür wäre dann lsqcurvefit da um sich den eingegeben y-Werten zu nähern, wenn ich das richtig verstehe..

Das heißt dann wohl auch keine Werte für die Parameter der Funktion bestimmen. Oder ?

Gruß,

Moe
Private Nachricht senden Benutzer-Profile anzeigen
 
AKNOT
Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 12.10.11
Wohnort: Bochum
Version: R2018a
     Beitrag Verfasst am: 18.07.2016, 14:35     Titel:
  Antworten mit Zitat      
xdata und ydata müssen schon die gleiche Dimension haben, was sollte er sonst mit den übrigen Daten anfangen. Schau dir doch einfach mal das Beispiel an.

Die Parameter deiner Funktion (a,b,c) werden von lsqcurvefit ermittelt, das ist der Sinn. Die stehen dann in x drin (Vektor). Entsprechend musst du in deiner Funktionsdefinition a,b und c mit x(1), x(2),... ersetzen. Wie gesagt, siehe Beispiel.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2, 3  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.