Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kann ich mir den schnittp. zweier lin. funk. berechnen (https://www.delphipraxis.net/58483-wie-kann-ich-mir-den-schnittp-zweier-lin-funk-berechnen.html)

NikoMitDaMacht 7. Dez 2005 16:46


Wie kann ich mir den schnittp. zweier lin. funk. berechnen
 
Hallo.
Ich hab schon ich der dp gesuch aber nichts passendes gefunden:
Wie kann ich mir den Schnittpunkt von zwei linearen funktionen errechnen lassen?
gibst irgend eine "solver" komponente?

Danke.

Der_Unwissende 7. Dez 2005 16:54

Re: Wie kann ich mir den schnittp. zweier lin. funk. berechn
 
Hi,
du musst eigentlich nur die beiden Funktionen gleichsetzen (o.B.d.A Funktion 1 = f(x), Funktion 2 = g(x)) -> f(x) = g(x) -> x = ... und dann bist du fertig. Das kannst du natürlich auch automatisch machen lassen (und/oder merken dass die sich nicht schneiden weil parallel).

Gruß Der Unwissende

ichbins 7. Dez 2005 17:01

Re: Wie kann ich mir den schnittp. zweier lin. funk. berechn
 
Delphi-Quellcode:
//Bsp:
//
//f(x) = ax+b |   g(x) = yx+z
//
//
//-->
//var xresult,yresult:real;
//
//solve(a,b,y,z,xresult,yresult);
//
//jetzt ist in xresult der x-Wert des Schnittpunktes gespeichert.
// 
procedure solve(f1a,f1b,f2a,f2b:real;out x,y:real);
begin
  x:=(f2b-f1b)/(f1a-f2a);
  y:=f1a*x+f1b;
end;

//Funktion nicht getestet, nur gerade schnell selbst geschrieben.

Surrounder 7. Dez 2005 17:25

Re: Wie kann ich mir den schnittp. zweier lin. funk. berechn
 
Delphi-Quellcode:
procedure schnittpunkte_suchen( var schnitt_X, schnitt_Y, x1, y1, x2, y2, x3, y3, x4, y4 : double );
var
   a : double;
begin
   a := (((x4 - x3) * (y1 - y3)) - ((y4 - y3) * (x1 - x3))) / (((y4 - y3) * (x2 - x1)) - ((x4 - x3) * (y2- y1)));
   schnitt_X := x1 + a * (x2 - x1);
   schnitt_Y := y1 + a * (y2 - y1);
end;
Das hatte ich bei mir schon eingabut, das tut auf jeden Fall so.

x1, y1 = Startpunkt x2,y2 = Endpunkt Gerade 1
x3, y3 Startpunkt x4,y4 = Endpunkt Gerade 2
schnitt_X und schnitt_y sind dann das Ergebnis

verteufelt mich jetzt nicht wegen des Codestiels das war eine meiner ersten Aufgaben, und ich hab das nur kurz raus kopiert.

Edit: Ich glaube es ist sogar egal ob es Startpunkt / Endpunkt ist, es mussen nur zwei Punkte auf der Geraden sein, wegen der Steigung

Nikolas 7. Dez 2005 18:19

Re: Wie kann ich mir den schnittp. zweier lin. funk. berechn
 
Ich weiss nicht, für was du diesen Code brauchst, aber wenn du ihn in der Schule vorstellen willst, solltest du darauf achten, dass du hier den Schnittpunkt von Polynomen ersten Grades suchst und nicht den von linearen Funktionen. Eine lineare Funktion hat die Form x |--> a*x mit a aus R, da nur so die an eine lineare Funktion gestellten Anforderungen erfüllt sind. ( f(x+y)=f(x)+f(y) und f(r*x)=r*f(x), mit r aus R).

Binärbaum 8. Dez 2005 14:09

Re: Wie kann ich mir den schnittp. zweier lin. funk. berechn
 
Zitat:

Zitat von Toxman
Ich weiss nicht, für was du diesen Code brauchst, aber wenn du ihn in der Schule vorstellen willst, solltest du darauf achten, dass du hier den Schnittpunkt von Polynomen ersten Grades suchst und nicht den von linearen Funktionen. Eine lineare Funktion hat die Form x |--> a*x mit a aus R, da nur so die an eine lineare Funktion gestellten Anforderungen erfüllt sind. ( f(x+y)=f(x)+f(y) und f(r*x)=r*f(x), mit r aus R).

Das stimmt so nicht ganz. Eine lineare Funktion (auf den reelen Zahlen) hat die Gleichung y=f(x)=m*x+n mit m,n aus R.

Das was du meinst, ist eine lineare Abbildung, und damit bezeichnet man in der linearen Algebra einen Homomorphismus zwischen zwei Vektorräumen V und W über einem Körper K. Eine lineare Abbildung ist eine Abbildung f: V -> W mit folgenden Eigenschaften:

f(v+v') = f(v) +f(v') für alle v, v' aus V
f(k* v) = k* f(v) für alle k aus dem Körper K und alle v aus dem Vektorraum V


Aber hier ging es um lineare Funktionen, und da müsste das, was unsere Vorredner gesagt haben, im Prinzip zutreffend sein. Wenn man also den Schnittpunkt von zwei linearen Funktionen berechnen will, dann kann man das durch Gleichsetzen der Funktionsgleichungen und Umstellen nach x erreichen und den zugehörigen y-Wert mit Hilfe des so ermittelten x berechnen.

MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz