Inkreismittelpunkt Dreieck < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:32 Mi 29.11.2006 | Autor: | makao |
Aufgabe | Berechnung des Inkreismittelpunkts eines Dreiecks in Matlab.
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Anmerkung: mit der Schulmethode soll ich den Inkreismittelpunkt (IKP) ausrechnen, d.h. Winkelsymmetralen aufstellen, und schneiden.
Nur ich habe das Problem, dass ich mit Matlab keine Geraden aufstellen kann, weil ich zu jeder Variable vorher den Wert der Variable definieren muss, sonst zeigt Matlab einen Fehler an.
d.h. ich kann Nicht sagen:
g=A+t*X
Unser Prof. hat gemeint mit:
-
a*x+b*y+c=0 mit Nebenbedingung: [mm] a^2+b^2=1 [/mm] ... so eine Gerade aufstellen.
-dann alle 3 Seiten des Dreiecks ausrechnen
-dann die Winkelsymmetralen
-dann durch Schnittpkt der winkelsymmetralen erhalte ich den Inkreismittelpunkt.
Also ich versteh auch nicht, warum diese Nebenbedingung gelten muss.
Aber wie gesagt, das Hauptproblem: Wie gebe ich diese Gleichung der Geraden a*x+b*y+c=0 in Matlab ein, wenn ich x und y keine Werte vorher zuweisen möchte?
|
|
|
|
Hallo,
> ich kann Nicht sagen:
> g=A+t*X
Nein, aber du kannst sagen:
g = 'A + t*X'
Sieh dir am besten die Hilfe zu solve an. Dort steht auch, wie man es aufruft, um die Lösungen für alle Unbekannten zu bekommen.
Zu dem [mm] $a^2 [/mm] + [mm] b^2 [/mm] = 1$:
Es scheint die Hesse-Normalform einer Gleichungsgeraden zu sein. Diese hat die Form:
$l(x,y) = [mm] x\cos\beta [/mm] + [mm] y\sin\beta [/mm] - p = 0$.
Wegen [mm] $\sin^2\beta [/mm] + [mm] \cos^2\beta [/mm] = 1$ stellt man für $a$ und $b$ sicher, dass man eine Hesse-Normalform hat.
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 01:42 Do 30.11.2006 | Autor: | makao |
function i = inkreis(A,B,C);
% A=[1; 2]; B=[4; 1]; C=[6; 8];
a1=A(1);a2=A(2);
b1=B(1);b2=B(2);
c1=C(1);c2=C(2);
d = (B-A)/ norm(B-A) +(C-A)/norm(C-A);
%Winkelhalbierender Vektor der Ecke A
d1=d(1);d2=d(2);
e = (A-B)/ norm(A-B)+(C-B)/norm(C-B);
%Winkelhalbierender Vektor der Ecke B
e1=e(1);e2=e(2);
syms t % Einführung einer neuen Variable (symbolic variables)
I = a1 + t*d1- b1-t*e1;
% Hier werden die Winkelsymmetralen geschnitten, d.h. gleichgesetzt
t=solve(I,t); %Gleichung nach t lösen
t=simplify(t);
t=simple(t);
s1 = a1 + t*d1;
%t in die Gleichung einer Winkelsymmetrale einsetzen ergibt den x-Wert
%des Inkreismittelpunktes
s2 = a2 + t*d2;
I=[s1;s2] %Inkreismittelpunkt; wird aber als Bruch dargestellt!!!
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 01:49 Do 30.11.2006 | Autor: | makao |
habe jetzt meine Lösung weiter oben gepostet.
er berechnet auch den Inkreismittelpunkt. Nur stellt er dies als BRUCH dar. selbst wenn ich simplify sage (siehe Code), dann gibt Matlab den Inkreismittelpunkt als Bruch aus?!??
z.B. gibt er dann folgendes aus:
>> A=[1 2];
B=[4 1];
C=[6 8];inkreis(A,B,C)
I =
31657751663844521/10190879749733735
21190842365978435/8152703799786988
dabei stimmt das Ergebnis. habe eine Zeichenkontrolle gemacht.
danke schon im Voraus!
|
|
|
|
|
Hallo,
versuche es doch mal mit eval(...).
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 01:57 Do 30.11.2006 | Autor: | makao |
> Zu dem [mm]a^2 + b^2 = 1[/mm]:
> Es scheint die Hesse-Normalform
> einer Gleichungsgeraden zu sein. Diese hat die Form:
> [mm]l(x,y) = x\cos\beta + y\sin\beta - p = 0[/mm].
>
> Wegen [mm]\sin^2\beta + \cos^2\beta = 1[/mm] stellt man für [mm]a[/mm] und [mm]b[/mm]
> sicher, dass man eine Hesse-Normalform hat.
wieso stellt man dass dadurch sicher, dass es dann eine Hesse-Normalform ist?
irgendwie versteh ichs grad nicht.
|
|
|
|
|
Mal angenommen, du hast bereits eine Geradengleichung, die aber die Nebenbedingung nicht erfüllt:
$l(x,y) = Ax + By + C = 0$
Wenn ich nun sage: Leite daraus die Hesse-Normalform ab, dann musst du die Koeffizienten so verändern, dass der x-Koeffizient den Kosinus des Steigungswinkels und der y-Koeffizient den Sinus des Steigungswinkels ergibt (das ist eben diese Normalform).
Da aber [mm] $\sin^2\beta [/mm] + [mm] \cos^2\beta [/mm] = 1$ gilt und deine Bedingung [mm] $a^2+b^2=1$ [/mm] lautet, läuft es darauf hinaus, dass du [mm] $a=\cos\beta$ [/mm] und [mm] $b=\sin\beta$ [/mm] setzen musst, da dies eine eindeutige Darstellung ist.
Gruß
Martin
|
|
|
|