AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie kann ich mir den schnittp. zweier lin. funk. berechnen

Wie kann ich mir den schnittp. zweier lin. funk. berechnen

Ein Thema von NikoMitDaMacht · begonnen am 7. Dez 2005 · letzter Beitrag vom 8. Dez 2005
Antwort Antwort
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#1

Wie kann ich mir den schnittp. zweier lin. funk. berechnen

  Alt 7. Dez 2005, 16:46
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.
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

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

  Alt 7. Dez 2005, 16:54
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
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#3

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

  Alt 7. Dez 2005, 17:01
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.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#4

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

  Alt 7. Dez 2005, 17:25
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
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#5

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

  Alt 7. Dez 2005, 18:19
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).
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

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

  Alt 8. Dez 2005, 14:09
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
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf