Determining coefficients of a parametrization of an epicycloid given a predefined arc length.

136 Views Asked by At

I am trying to determine the coefficient q in the parametrization of a epicycloid which gives me the arc length of 4.25. The parametrization can be glimpsed in my attempt of a solution in the following Matlab code.

R=0.5;
r=R/3;
c=(R+r)/r;
t = 0:0.01:2*pi;


fun = @(t,q) sqrt((c.^2).*(r.^2).*sin(t).^2+(c.^2).*(q.^2).*...
     (r.^2).*sin(c.*t).^2+(c.^2).*(r.^2).*cos(t).^2+(c.^2).*(q.^2).*...
     (r.^2).*cos(c.*t).^2+1);

fun2 = @(q) integral(@(t) fun(t,q),0,2*pi)

qsolve=fsolve(@(q) fun2(q)-4.25, 0)

The problem is that solve can not find any solution. I am very much grateful if someone can help me with this one.

Cheers!

3

There are 3 best solutions below

2
On BEST ANSWER

If you actually evaluate the function you're trying to mess with, suing something like this:

x = -8:.01:8; 
s = numel(x); 
y = zeros(s, 1); 

for i = 1:s
  y(i) = fun2(x(i));
end

plot(x, y); 

then your resulting plot looks like this: enter image description here

That plot pretty much tells you why you can't make the length be $4.25$ ... because it's pretty much always at least $6$ or $7$.

Perhaps you need to draw a picture of one of your epicycloids to figure out just how short it could possible be. Perhaps the choice $q = 0$ would be a good one, since it seems to be as short as possible. I'll bet it's a circle with radius 1, hence circumference $2\pi \approx 6.28 > 4.25$.

0
On

Here is a plot (obtained by a Matlab program I have placed at the bottom of this text) of various curves with parametric equations as you have given them in a comment :

$$x= cr \cos(t) - qr \cos(ct), \ \ y= cr \sin(t) - qr \sin(ct)$$

for $q$ in the range $(0,3)$. Value $q=1$ corresponds to the classical epicycloid . For this value of $q$, the curve length is well under $4.25$.

Values of $q$ above $1$ yield curves with loops. Do you still consider such curves ?

enter image description here

I see at least two problems.

Do we agree that arc length is computed as $\int_0^L \sqrt{x(s)'^2+y(s)'^2}ds$ where $s$ is arclength ?

1) If we assume for a while that your parameter $t$ is arclength (which is not), I am unable to recognize the (square of the) derivative of $x(t) = c*r*cos(t) - q*r*cos(c* t)$ in your "fun" expression. The same for the derivative of $y(t)$.

2) As said above, the issue is that $t$ isn't arc length...

Matlab program for the figure :

clear all;close all;axis equal;hold on;set(gcf,'color','w')
R = 0.5; r = R/3; c = (R+r)/r;
t=0:0.001:2*pi;
plot(c*r*cos(t), c*r*sin(t),'r','linesmoothing','on');
for q=0.1:0.1:3
   x= c*r*cos(t) - q*r*cos(c*t);
   y= c*r*sin(t) - q*r*sin(c*t) ;
   plot(x,y,'b','linesmoothing','on');
end;
0
On

Thank you! I also solved it but I forgot to post it here.

clc clear R=0.5; r=R/3; c=(R+r)/r;

pfun = @(t,q) sqrt((-c.*r.*sin(t)).^2+(c.*r.*q.sin(ct)).^2+(c.*r.*cos(t)).^2+(-c.*r.*q.cos(ct)).^2); fun = @(q) integral(@(t) pfun(t,q),0,2*pi) qsolve=fzero(@(q) fun(q) - 4.25,0);

t=linspace(0,2*pi);
x = c.*r.*cos(t)-qsolve.*c.*r.cos(ct); y = c.*r.*sin(t)-qsolve.*c.*r.sin(ct); plot(x,y) axis('equal')