Application Center - Maplesoft

App Preview:

Kissoide (Zissoide)

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

Image 

 

Kissoide  (Zissoide) 

 

Univ.-Prof. Dr.-Ing. habil. Josef  BETTEN  

RWTH University Aachen  

Mathematical Models in Materials Science and Continuum Mechanics  

Augustinerbach 4-20  

D-52056  A a c h e n ,  Germany  

 

betten@mmw.rwth-aachen.de 

                                      

 

 

                                                                   

 

> Kissoide_des_Diokles[Efeublatt]:=x^3-(a-x)*y^2=0;
 

`:=`(Kissoide_des_Diokles[Efeublatt], `+`(`*`(`^`(x, 3)), `-`(`*`(`+`(a, `-`(x)), `*`(`^`(y, 2))))) = 0) (1)
 

Damit kann ein Efeublatt dargestellt werden. Als Beispiel sei  a = 1  gew?hlt: 

 

> restart:
 

> with(plots,implicitplot):
 

> alias(co=color,th=thickness):
 

> plot1:=implicitplot(x^3+(x-1)*y^2=0,      x=0..1/2,y=0..1/sqrt(2),numpoints=5000,co=black,th=3):
 

> plot2:=implicitplot(x^3+(x-1)*y^2=0,     x=0..1/2,y=-1/sqrt(2)..0,numpoints=1000,co=black,th=3):
 

> plot3:=implicitplot(x^2+y^2=1/2, x=1/2..sqrt(2),y=-1/sqrt(2)..1/sqrt(2),co=black,th=3):
 

> plots[display](plot1,plot2,plot3);
 

Plot_2d
 

>
 

Im Bild ist eine Kissoide dargestelt (plot1 f?r y>0 und plot2 f?r y<0). Die beiden Zweige sind mit                                   einem Kreisbogen (plot3) verbunden. Dadurch entsteht ein Efeublatt. Der Name Kissoide kommt  

aus dem Griechischen: kissos = Efeu. Die Form (Gleichung) einer Kissoide wird durch twei  

vorgegebene Kurven  k[1]  und  k[2]  (Leitkurven) bestimmt, die man auch zur Konstruktion der  

entsprechenden Kissoide mit Zirkel und Lineal zu Grunde legt.             

 Im obigen Beispiel sind  k[1] ein Kreis mit dem Radius  a/2  und  k[2]  eine senkrechte Tangente: 

> k[1]:=(x-a/2)^2 + y^2 = a^2/4;   k[2]:= x = a;
 

`:=`(k[1], `+`(`*`(`^`(`+`(x, `-`(`/`(`*`(a), `*`(2)))), 2)), `*`(`^`(y, 2))) = `+`(`/`(`*`(`^`(a, 2)), `*`(4)))) (2)
 

`:=`(k[2], x = a) (2)
 

> restart:
 

> with(plots,implicitplot):
 

> alias(co=color,H=Heaviside,th=thickness):
 

> # a = 1,
 

> p[1]:=implicitplot(x^3+(x-1)*y^2=0,                               x=0..1,y=0..3/2,numpoints=5000,co=black,th=3):
 

> p[2]:=implicitplot({(x-1/2)^2+y^2=1/4,y-4*x/3=0},                 x=0..1,y=0..3/2,co=black):
 

> p[3]:=plot((3/2)*H(x-1),x=0..1.001,y=0..3/2,            co=black,scaling=constrained):
 

> p[4]:=plot([[1,4/3],[9/25,12/25]],        style=point,symbol=circle,symbolsize=30):
 

> p[5]:=plot([[16/25,64/75]],style=point,               symbol=cross,symbolsize=60):
 

> p[6]:=plots[textplot]({[0.3,1.3,`A -> B` = `0 -> P`],           [8/25,13/25,`A`],[0.95,4/3,`B`],[19/25,64/75,`P(x,y)`]}):
 

> plots[display](seq(p[k],k=1..6));
 

Plot_2d
 

>
 

Aus der Definition  AB = OP  erh?lt man unter Ber?cksichtigung der Leitkurven  k[1]  und  k[2]   

die Gleichung der Kissoide  

> x^3-(a-x)*y^2=0;
 

`+`(`*`(`^`(x, 3)), `-`(`*`(`+`(a, `-`(x)), `*`(`^`(y, 2))))) = 0 (3)
 

die man in Polarkoordinaten (r, phi) gem??  

> r(phi):=a*(sin(phi))^2/cos(phi);
 

`:=`(r(phi), `/`(`*`(a, `*`(`^`(sin(phi), 2))), `*`(cos(phi)))) (4)
 

darstellen kann. Eine rationale Parameterdarstellung ist folgenderma?en m?glich:  

> x(t):=a*t^2/(1+t^2);   y(t):=a*t^3/(1+t^2);
 

`:=`(x(t), `/`(`*`(a, `*`(`^`(t, 2))), `*`(`+`(1, `*`(`^`(t, 2)))))) (5)
 

`:=`(y(t), `/`(`*`(a, `*`(`^`(t, 3))), `*`(`+`(1, `*`(`^`(t, 2)))))) (5)
 

mit  t = y(t) / x(t) = tan(phi).   

  Diokles, ein griechischer Mathematiker, erfand um 100 v. Chr. zur L?sung der  

"W?rfelvolumenverdoppelung" die nach ihm benannte Kissoide.  

  Nach einer Legende befragten die Bewohner der Insel Delos w?hrend einer  

Pestepidemie (um 400 v. Chr.) das Orakel von Delphi um Rat. Sie wurden aufgefordert,  

das Volumen des w?rfelformigen Altars im Tempel des Apollon zu verdoppeln.  

Die Seitenl?nge  "a"  m?sste auf  b = 2^(1/3)*a  vergr??ert werden, was nur mit Zirkel  

und Lineal nicht m?glich ist, da die irrationale Zahl 2^(1/3)  nicht durch ganze Zahlen                                              ausgedr?ckt  werden kann. 

  Legt man als Leitkurven eine Ellipse und Asymptote  

> restart:
 

> k[1]:=(x-a/2)^2+(y/b)^2=a^2/4;   k[2]:=x=a;
 

`:=`(k[1], `+`(`*`(`^`(`+`(x, `-`(`/`(`*`(a), `*`(2)))), 2)), `/`(`*`(`^`(y, 2)), `*`(`^`(b, 2)))) = `+`(`/`(`*`(`^`(a, 2)), `*`(4)))) (6)
 

`:=`(k[2], x = a) (6)
 

zugrunde, so erh?lt man mit den Parametern  a = 1  und  b = 1/2  folgendes Bild:  

> with(plots,implicitplot):
 

> alias(H=Heaviside,th=thickness,co=color):
 

> # Beispiel:  a = 1 und b = 1/2
 

> p[1]:=implicitplot(x^3+(x-1)*(y/(1/2))^2=0,x=0..1,y=0..1, numpoints=5000,th=3,co=black):
 

> p[2]:=implicitplot({(x-1/2)^2+(y/(1/2))^2=1/4,x=1,y=0.8*x,y=1}, x=0..1,y=0..1,scaling=constrained,co=black):
 

> p[3]:=plot([[1,0.8],[0.281,0.225]],     style=point,symbol=circle,symbolsize=30):
 

> p[4]:=plot([[0.72,0.575]],                style=point,symbol=cross,symbolsize=60):
 

> p[5]:=plots[textplot]({[0.3,0.8,`A -> B` = `O -> P`], [0.25,0.25,`A`],[0.95,0.8,`B`],[0.8,0.575,`P(x,y)`]}):
 

> plots[display](seq(p[k],k=1..5));
 

Plot_2d
 

>
 

Im n?chsten Beispiel wird als Leitkurven der Einheitskreis und eine waagerechte Linie  

zu Grund gelegt. Damit erh?lt man folgende Kissoide: 

> restart:
 

> Leitkurve_k[1]:=x^2+y^2=1;   Leitkurve_k[2]:=y-b=0;
 

`:=`(Leitkurve_k[1], `+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))) = 1) (7)
 

`:=`(Leitkurve_k[2], `+`(y, `-`(b)) = 0) (7)
 

> Kissoide:=(x^2+y^2)*(y+b)^2-a^2*y^2=0;
 

`:=`(Kissoide, `+`(`*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))), `*`(`^`(`+`(y, b), 2))), `-`(`*`(`^`(a, 2), `*`(`^`(y, 2))))) = 0) (8)
 

Als Beispiel sei  a = 1  und  b =1/3  bzw.  b = -1/3  gew?hlt: 

> eq(x,y):=subs({a=1,b=1/3},Kissoide);
 

`:=`(eq(x, y), `+`(`*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))), `*`(`^`(`+`(y, `/`(1, 3)), 2))), `-`(`*`(`^`(y, 2)))) = 0) (9)
 

> Eq(x,y):=subs({a=1,b=-1/3},Kissoide);
 

`:=`(Eq(x, y), `+`(`*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))), `*`(`^`(`+`(y, `-`(`/`(1, 3))), 2))), `-`(`*`(`^`(y, 2)))) = 0) (10)
 

> with(plots,implicitplot):
 

> alias(th=thickness,co=color):
 

> p[1]:=implicitplot(eq(x,y),x=-1..1,y=0..1, numpoints=5000,scaling=constrained,th=3,co=black):
 

> p[2]:=implicitplot(Eq(x,y),x=-1..1,y=-1..0,         numpoints=5000,th=3,co=black):
 

> p[3]:=implicitplot({x^2+y^2=1,y=1/3,y=-1/3,y=2.5*x},    x=-1..1,y=-1..1,co=black):
 

> p[4]:=plot([[0.133,1/3],[0.37,0.93]],    style=point,symbol=circle,symbolsize=30):
 

> p[5]:=plot([[0.2381,0.5951]],             style=point,symbol=cross,symbolsize=60):
 

> p[6]:=plots[textplot]({[-0.5,0.75,`AB`=`OP`], [0.15,0.28,`A`],[0.42,0.95,`B`],[0.3,0.6,`P(x,y)`], [0.9,0.5,`k1`],[0.75,0.38,`k2`]},align=RIGHT):
 

> plots[display](seq(p[k],k=1..6));
 

Plot_2d
 

>
 

Koordinaten des Punktes  P(x,y): 

> x[P]:=solve(subs(y=2.5*x,eq(x,y)),x);  y[P]:=2.5*%;
 

`:=`(x[P], 0., 0., .2380573430, -.5047240097) (11)
 

`:=`(y[P], 0., 0., .5951433575, -1.261810024) (11)
 

Darin sind nur die Werte gr??er NULL  relevant: 

> (x[p], y[p])=(0.2381, 0.5951);
 

(x[p], y[p]) = (.2381, .5951) (12)
 

>
 

Legt man die Leitlinien 

> restart:
 

> Leitlinie_k[1]:=x=a;   Leitlinie_k[2]:=y=b;
 

`:=`(Leitlinie_k[1], x = a) (13)
 

`:=`(Leitlinie_k[2], y = b) (13)
 

zu Grunde, so erh?lt man folgende Kissoide: 

> Kissoide:=b*x/(a-x)-y=0;
 

`:=`(Kissoide, `+`(`/`(`*`(b, `*`(x)), `*`(`+`(a, `-`(x)))), `-`(y)) = 0) (14)
 

Es sei  a = 1  und  b = 1/3  bzw.  b = -1/3  gew?hlt: 

> eq(x,y):=x/3/(1-x)-y=0;
 

`:=`(eq(x, y), `+`(`/`(`*`(x), `*`(3, `*`(`+`(1, `-`(x))))), `-`(y)) = 0) (15)
 

> Eq(x,y):=-x/3/(1-x)-y=0;
 

`:=`(Eq(x, y), `+`(`-`(`/`(`*`(x), `*`(3, `*`(`+`(1, `-`(x)))))), `-`(y)) = 0) (16)
 

> with(plots,implicitplot):
 

> alias(H=Heaviside,th=thickness,co=color):
 

> p[1]:=implicitplot(eq(x,y),x=0..6/7,y=0..2,th=3,co=black):
 

> p[2]:=implicitplot(Eq(x,y),x=0..6/7,y=-2..0,th=3,co=black):
 

> p[3]:=plot({-1/3,1/3,-2,2,-2*H(x-1),2*H(x-1),1.8*x},     x=0..1.001,y=-2..2,co=black):
 

> p[4]:=plot([[1/5.4,1/3],[1,1.8]],        style=point,symbol=circle,symbolsize=30):
 

> p[5]:=plot([[4.4/5.4,4.4/3]],             style=point,symbol=cross,symbolsize=60):
 

> p[6]:=plots[textplot]({[0.3,1.8,`AB`=`OP`],[0.16,0.45,`A`], [0.95,1.81,`B`],[0.85,4.4/3,`P(x,y)`],[0.95,1,`k1`], [0.9,0.45,`k2`]},align=RIGHT):
 

> plots[display](seq(p[k],k=1..6));
 

Plot_2d
 

>
 

Im folgenden Beispiel werden als Leikurven der Einheitskreis und die  

Kreise  eq(x,y)  und  Eq(x,y)  gew?hlt: 

> restart:
 

> eq(x,y):=(x-1/2)^2+y^2-1/4=0;
 

`:=`(eq(x, y), `+`(`*`(`^`(`+`(x, `-`(`/`(1, 2))), 2)), `*`(`^`(y, 2)), `-`(`/`(1, 4))) = 0) (17)
 

> Eq(x,y):=(x+1/2)^2+y^2-1/4=0;
 

`:=`(Eq(x, y), `+`(`*`(`^`(`+`(x, `/`(1, 2)), 2)), `*`(`^`(y, 2)), `-`(`/`(1, 4))) = 0) (18)
 

> Kissoide[x>0]:=x^2+y^2-sqrt(x^2+y^2)+x=0;
 

`:=`(Kissoide[`<`(0, x)], `+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `-`(`*`(`^`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))), `/`(1, 2)))), x) = 0) (19)
 

> Kissoide[x<0]:=x^2+y^2-sqrt(x^2+y^2)-x=0;
 

`:=`(Kissoide[`<`(x, 0)], `+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `-`(`*`(`^`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))), `/`(1, 2)))), `-`(x)) = 0) (20)
 

> with(plots,implicitplot):
 

> alias(th=thickness,co=color,bl=black):
 

> p[1]:=implicitplot(eq(x,y),x=0..1,y=-1..1,co=bl):
 

> p[2]:=implicitplot(Eq(x,y),x=-1..0,y=-1..1,co=bl):
 

> p[3]:=implicitplot(x^2+y^2-1=0,x=-1..1,y=-1..1,          scaling=constrained,co=bl):
 

> p[4]:=implicitplot(Kissoide[x>0],x=0..1,y=-1..1,       numpoints=50000,th=3,co=bl):
 

> p[5]:=implicitplot(Kissoide[x<0],x=-1..0,y=-1..1,      numpoints=50000,th=3,co=bl):
 

> plots[display](seq(p[k],k=1..5));
 

Plot_2d
 

>
 

  Im n?chsten Beispiel dienen der Einheiskreis Eq(x,y) und eine Ellipse eq(x,y) zur Erzeugung einer  

Kissoide K(x,y):  

> x^2+y^2=a^2;  (x/a)^2+(y/b)^2=1;
 

`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))) = `*`(`^`(a, 2)) (21)
 

`+`(`/`(`*`(`^`(x, 2)), `*`(`^`(a, 2))), `/`(`*`(`^`(y, 2)), `*`(`^`(b, 2)))) = 1 (21)
 

Daraus gewinnt man mit der Definition  AB := OP  die entsprechende Kissoide: 

> a^2*b^2*(x^2+y^2)=(a^2*y^2+b^2*x^2)*(sqrt(x^2+y^2)-a)^2;
 

`*`(`^`(a, 2), `*`(`^`(b, 2), `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)))))) = `*`(`+`(`*`(`^`(a, 2), `*`(`^`(y, 2))), `*`(`^`(b, 2), `*`(`^`(x, 2)))), `*`(`^`(`+`(`*`(`^`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2... (22)
 

>
 

Beispielsweise sei  a = 1 ,  und  b = 1/2   gew?hlt:  

> restart:
 

> Eq(x,y):=x^2+y^2-1=0;   eq(x,y):=x^2+4*y^2-1=0;
 

`:=`(Eq(x, y), `+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `-`(1)) = 0) (23)
 

`:=`(eq(x, y), `+`(`*`(`^`(x, 2)), `*`(4, `*`(`^`(y, 2))), `-`(1)) = 0) (23)
 

> K(x,y):=x^2+y^2-(4*y^2+x^2)*(sqrt(x^2+y^2)-1)^2=0;
 

`:=`(K(x, y), `+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `-`(`*`(`+`(`*`(4, `*`(`^`(y, 2))), `*`(`^`(x, 2))), `*`(`^`(`+`(`*`(`^`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))), `/`(1, 2))), `-`(1)), 2))))) = 0) (24)
 

> with(plots,implicitplot):
 

> alias(th=thickness,co=color):
 

> p[1]:=implicitplot(K(x,y),x=-1..1,y=-1..1,         numpoints=40000,th=3,co=black):
 

> p[2]:=implicitplot({Eq(x,y),eq(x,y)},x=-1..1,y=-1..1, numpoints=1000,scaling=constrained,co=black):
 

> plots[display](p[1],p[2]);
 

Plot_2d
 

>
 

Mit den Parametern  a = 1 ,  b = 1/3  erh?lt man folgendes Bild:  

> Eq(x,y):=x^2+y^2-1=0;  eq(x,y):=x^2+9*y^2-1=0;
 

`:=`(Eq(x, y), `+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `-`(1)) = 0) (25)
 

`:=`(eq(x, y), `+`(`*`(`^`(x, 2)), `*`(9, `*`(`^`(y, 2))), `-`(1)) = 0) (25)
 

> K(x,y):=(1/9)*(x^2+y^2)-((1/9)*x^2+y^2)*(sqrt(x^2+y^2)-1)^2=0;
 

`:=`(K(x, y), `+`(`/`(`*`(`^`(x, 2)), `*`(9)), `/`(`*`(`^`(y, 2)), `*`(9)), `-`(`*`(`+`(`/`(`*`(`^`(x, 2)), `*`(9)), `*`(`^`(y, 2))), `*`(`^`(`+`(`*`(`^`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))), `/`(1, 2)... (26)
 

> with(plots,implicitplot):
 

> alias(th=thickness,co=color):
 

> p[1]:=implicitplot(K(x,y),x=-1..1,y=-1..1,          numpoints=40000,th=3,co=black):
 

> p[2]:=implicitplot({Eq(x,y),eq(x,y),y=3*x/2},x=-1..1,y=-1..1,                  numpoints=1000,scaling=constrained,co=black):
 

> p[3]:=plot([[0.22,0.33],[0.55,0.83]],    style=point,symbol=circle,symbolsize=30):
 

> p[4]:=plot([[1/3,1/2]],                    style=point,symbol=cross,symbolsize=60):
 

> p[5]:=plots[textplot]({[-0.4,3/4,`AB`=`OP`], [0.2,0.4,`A`],[0.65,0.83,`B`],[0.5,1/2,`P(x,y)`]}):
 

> plots[display](seq(p[k],k=1..5));
 

Plot_2d
 

>
 

  Die obigen Beispiele zeigen, wie hilfreich die Software MAPLE ist. Auf  derartige  

"mathematische Formelmanipulations-Programme" kann man heute nicht mehr verzichten.  

>
 

 

Legal Notice: ? Maplesoft, a division of Waterloo Maple Inc. 2009. Maplesoft and Maple are trademarks of Waterloo Maple Inc. Neither Maplesoft nor the authors are responsible for any errors contained within and are not liable for any damages resulting from the use of this material.  This application is intended for non-commercial, non-profit use only. Contact the authors for permission if you wish to use this application in for-profit activities.