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

Erstellen einer Funktionsschar 3. Grades mit 3 Bedingungen?!

 

Samil
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 20.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2013, 14:45     Titel: Erstellen einer Funktionsschar 3. Grades mit 3 Bedingungen?!
  Antworten mit Zitat      
Hallo,

ich möchte eine Funktionsschar 3. Grades erstellen, die von einer Variable abhängig ist. Es stehen 3 Bedingungen zur Verfügung.

Code:

function [f] = funktion1(a,x)

f = a*x^3 + b*x^2 + c*x +d;

a*20^3 + b*20^2 + c*20 + d = 3;     %Punkt1 (20;3)
a*27^3 + b*27^2 + c*27 + d = 24;   %Punkt2 (27;24)
3*a*27^2 + 2*b*27 + c = 4              %Steigung an der Stelle 27 ist 4

end
 


Nehmen wir an, dass die Funktionsschar anschließend von der Variablen a abhängig ist.
Zuletzt würde ich noch diese Schar plotten.

Ich bin planlos und bin für jeden Hinweis dankbar.

Danke.

Grüße
Samil
Private Nachricht senden Benutzer-Profile anzeigen


Samil
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 20.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2013, 15:50     Titel:
  Antworten mit Zitat      
Ich habe es mal per hand berechnet und komme auf folgendes Ergebnis.

Code:

f(a,x) = a*x^3 + (-73*a+0.175)*x^2 + (1755*a-5.45)*x -13851*a + 43.575
 


Bräuchte dies dann bei Matlab.

Der Punkt1 lautet doch (19;3.2). Das ist ja aber zunächst nicht so wichtig.
Die Bedingungen lauten
Code:

a*19^3 + b*19^2 + c*19 + d = 3.2;     %Punkt1 (20;3)
a*27^3 + b*27^2 + c*27 + d = 24;   %Punkt2 (27;24)
3*a*27^2 + 2*b*27 + c = 4              %Steigung an der Stelle 27 ist 4
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Bibonaut
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 06.06.13
Wohnort: Berlin
Version: 2013a
     Beitrag Verfasst am: 28.09.2013, 18:34     Titel:
  Antworten mit Zitat      
Hallo Samil,

du hast ja für deine Lösung das Gleichungssystem gelöst. Das kann Matlab auch, wenn das Gleichungssystem eindeutig lösbar ist und das ist nur der Fall, wenn du "a" einen Wert zuweist.

Wie ich das an deiner Funktion sehe, übergibst du ja auch einen Wert für "a" sodass du ein Gleichungssystem aufstellen und mit Matlab lösen kannst. Allgemeine Form ist bekanntlich

<br />
Ax =b
<br />
wobei x jetzt nicht deine Variable des Polynoms sondern deine Unbekannten sind. Alles was bekannt ist, ist in "b" zusammengefasst. Da "a" bekannt ist und der Funktion übergeben wird, musst du "a" auch auf die rechte Seite ziehen.
Code:

b = [-a*19^3 + 3.2;
    -a*27^3 + 24;
    -3*27^2 + 4];
 

In der Matrix A stehen die Koeffizienten deiner Unbekannten der drei Gleichungen:
Code:

A = [19^2 19 1;
    27^2 27 1;
    2*27 1 0];
 

Das Gleichungssystem kannst du dann mit dem Backslashoperator lösen:
Code:

x = A\b;
 

In x stehen dann die drei Unbekannten b,c und d.

Das einzige Problem ist hierbei, dass deine Funktion jedes mal das Gleichungssystem lösen muss.

Wenn du das Polynom in Abhängigkeit von x und a erhalten willst, ohne dass du "a" vorgibst, so wie du es von Hand ausgerechnet hast, kannst du aufgrund der Linearität der Koeffizienten einen Trick anwenden.

Das macht aber nur Sinn, wenn die folgende Berechnung nicht in der Funktion ausgeführt wird, sondern quasi nur als Hilfsmittel dient, um dir deine Funktion f(x,a) zu erstellen.
Du kannst die rechte Seite also das "b" auch auftrennen und zwei Gleichungssysteme lösen, dass du einmal deine Koeffizienten erhälst , die du mit "a" multiplizierst und einmal deine Koeffizienten erhälst, die konstant sind:
Code:

% Koeffizientenmatrix A
A = [19^2 19 1;
    27^2 27 1;
    2*27 1 0];
% Rechte Seite ohne "a":
b = [3.2;24;4];
% x1 sind konstante Koeffizienten
x1 = A\b;

% rechte Seite = minus Koeffizienten von "a"
b2 = [-19^3;-27^3; -3*27^2];

% x2 sind Koeffizienten die mit a multipliziert werden müssen
x2 = A\b2
 


Ich hoffe das hilft dir Smile
Grüße
Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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 - 2025 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.