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

Gemeinsamen Schnittpunkt mehrerer Kreise iterativ finden

 

Slev1n
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 18.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2017, 17:13     Titel: Gemeinsamen Schnittpunkt mehrerer Kreise iterativ finden
  Antworten mit Zitat      
Hallo Leute,

ich habe folgende Aufgabe. Ich habe 3 Kreise bei denen ich sowohl Mittelpunkt als auch Radius kenne. Ich suche den Punkt in dem sich alle 3 Kreise gleichzeitig schneiden (gemeinsamer Schnittpunkt).
Nun zu dem "iterativen" finden. Zu Beginn schneiden sich nicht alle drei Kreise, dazu muss der Radius der aller Kreise vergrößert werden und zwar bei allen um den selben Wert. Wieviel weiß ich aber vorher noch nicht.
Nun wollte ich so vorgehen, dass ich iterativ die Kreise anwachsen lasse und jedesmal Prüfe, ob der gemeinsame Schnittpunkt gefunden wurde.

Mein Problem: Ich bin recht neu und bin mir bzgl der Syntax nicht sicher wie ich den Schnittpunkt am besten Suche. Ist es am klügsten von zwei Kreisen jeweils (insg. 3 Schnittpunkte) den Schnittpunkt zu nehmen und dann abzubrechen wenn die drei Schnittpunkte nah genug beieinander sind?
1, Wie finde ich den Schnittpunkt? (das definieren der Funktionen für fzero ist mir noch etwas unklar)
2, Wie stell ich das mit der Toleranz korrekt ein?

Hier mein Code:
Code:
%Schnittpunkt dreier Kreise
clear all
close all


for n=0:6
x=n+1;
r1=x;
r2=x;
r3=x;
   
   
%Kreis 1
%r1=2;
x1=-5;
y1=-5;
t=0:.01:2*pi;
f1=r1*cos(t)+x1,r1*sin(t)+y1;
plot(r1*cos(t)+x1,r1*sin(t)+y1)
hold on

%Kreis 2
%r2=2;
x2=5;
y2=5;
t=0:.01:2*pi;
f2=2*cos(t)+x2,r2*sin(t)+y2;
plot(r2*cos(t)+x2,r2*sin(t)+y2)
hold on

%Kreis 3
%r3=2;
x3=-5;
y3=5;
t=0:.01:2*pi;
f3=r3*cos(t)+x3,r3*sin(t)+y3;
plot(r3*cos(t)+x3,r3*sin(t)+y3)


end




Vielen Dank schonmal im voraus
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.01.2017, 15:22     Titel: Re: Gemeinsamen Schnittpunkt mehrerer Kreise iterativ finden
  Antworten mit Zitat      
Hallo Slev1n,

Wie so oft, empfehle ich als erstes den "clear all; close all" Header zu entfernen. VErwende lieber eine Funktion statt eines Scripts, dann sind solche brutalen Krücken, die erstmal alles Löschen, überflüssig.

Du hast 3 Kreise durch ihre Mittelpunkte und 3 Radien gegeben. Wieso musst Du dann iterativ die Radien vergrößern? Und wieso bei allen un den selben Wert? Wie lautete genau die Aufgabenstellung?

Zitat:
Ist es am klügsten von zwei Kreisen jeweils (insg. 3 Schnittpunkte) den Schnittpunkt zu nehmen und dann abzubrechen wenn die drei Schnittpunkte nah genug beieinander sind?

Das klingt gut.

Zitat:
1, Wie finde ich den Schnittpunkt?

Zwei Kreise haben nur im Fall des Berührens einen einzigen Schnittpunkt, ansonsten 2 oder keinen. Du bräuchtest also auch noch eine Strategie, um unter den bis zu 6 Schnittpunkten den jenigen zu finden, denn Du durch Änderung der Radien zum Lösungspunkt machen möchtest.

Zitat:
(das definieren der Funktionen für fzero ist mir noch etwas unklar)

Hast Du eine konkrete Frage dazu? Hast Du Dir mal die Beispiele in der Dokumentation angeschaut?

Zitat:
2, Wie stell ich das mit der Toleranz korrekt ein?

Was meinst Du damit genau?

Da dies eine Hausaufgabe ist, sind konkrete Fragen immer besser, denn es wäre unpraktisch, wenn man hier eine vollständige Lösung postet.

Gruß, Jan
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 - 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.