Kitonum

21308 Reputation

26 Badges

16 years, 259 days

MaplePrimes Activity


These are replies submitted by Kitonum

If the number (-1) in the exponent simply means the reciprocal value, then the syntax is very simple

simplify(1/(diff(z, t)-diff(z, x)));

If you mean the inverse function, then clarification is required here, since you have a function of several variables.

@nilswe 

restart;
`&||` := (R::seq(algebraic)) -> `if`(_npassed = 0, infinity, 1/(add(`/`~(1, [R]))));
`&||`(R1,R2);

salim-barzani   Try   eq6 := eval(L, {x = Y/t, t^2 = Z, x^2 = X});

@JAMET  This is a completely different task and you should ask a separate question for it. Moreover, you must use English, because this is an English-language forum.

@JAMET   See my updated answer.

@Andiguys  Maybe so

P := evalf[4]([eval([k1, delta][], s[2]), s[1]]); 
display(plot3d(TRC(k1, delta), k1 = 0 .. 1, delta = 0 .. 1), pointplot3d(P, color = red, symbol = solidcircle, symbolsize = 17), textplot3d([P[], P], font = [times, 12], align = [ABOVE,RIGHT]), orientation = [45, 75], axes = normal);

         

 

 

@Andiguys  I didn't notice that the  0  after the delta should also be a subscript. The following option   labels=[ `δ`[0], s[2] ]    works for me.

@Earl  I think that for your purposes a procedure will be useful that will allow you to easily generate a chain of tangent circles of any length. The parameters of the  Circles  procedure are: n - circle's number, R - radius of the original circle, r1 - radius of the larger of the small circles. The procedure returns the center of the n-th small circle:

restart;
Circles:=proc(n,R,r1)
option remember;
if n=1 then return [2*sqrt(R*r1),r1] else
simplify([Circles(n-1,R,r1)[1]*sqrt(R)/(sqrt(R)+sqrt(Circles(n-1,R,r1)[2])),Circles(n-1,R,r1)[2]*R/(sqrt(R)+sqrt(Circles(n-1,R,r1)[2]))^2]) fi;
end proc:

# Examples of use

S0:=seq(Circles(n,4,1), n=1..15);
S:=seq(plottools:-circle(Circles(n,4,1),Circles(n,4,1)[2]), n=1..15):
plots:-display(plottools:-circle([0,4],4),S, scaling=constrained, view=[0..5.5,0..2.5],size=[900,600]);

     

 

 

@Rouben Rostamian  Thank you for this great construction! I converted your comment into an answer and vote up.

@Earl  Using the general formulas from my answer above, it is easy to verify that regardless of the size of the smaller circles, the centers of these circles are always on the parabola  y=x^2/(4*R) , where  R  is the radius of the original large circle. This is clearly visible in the animation:

restart;
OneFrame:=proc(R,r1)
local O,dist,O1,O20,O2,O3,O4,O5,O6,k1,k2,k3,k4,P1,P2,P3,P4,P5,P6:
uses plots, plottools;
dist:=(A,B)->sqrt((A[1]-B[1])^2+(A[2]-B[2])^2):
O:=[0,R]: O1:=[x1,y1]: O2:=[x2,y2]: O3:=[x3,y3]: 
O1:=eval(O1,solve({dist(O,O1)=R+r1,y1=r1}, {x1,y1},explicit)[1]):
O20:=eval([x2,y2],simplify(solve({dist(O1,O2)=r1+r2, dist(O,O2)=R+r2,y2=r2},{x2,r2,y2}, explicit)[1])):
O2:=[2*sqrt(R)*sqrt(r1)*sqrt(R)/(sqrt(R)+sqrt(r1)),r1*(sqrt(R)/(sqrt(R)+sqrt(r1)))^2]:
k1:=simplify(sqrt(R)/(sqrt(R)+sqrt(O2[2])));
O3:=simplify([O2[1]*k1,O2[2]*k1^2]);
k2:=simplify(sqrt(R)/(sqrt(R)+sqrt(O3[2])));
O4:=[O3[1]*k2,O3[2]*k2^2]:
k3:=simplify(sqrt(R)/(sqrt(R)+sqrt(O4[2])));
O5:=[O4[1]*k3,O4[2]*k3^2]:
k4:=simplify(sqrt(R)/(sqrt(R)+sqrt(O5[2])));
O6:=[O5[1]*k4,O5[2]*k4^2]:
P1:=circle(O1,O1[2],thickness=2); P2:=circle(O2,O2[2],thickness=2); P3:=circle(O3,O3[2],thickness=2); P4:=circle(O4,O4[2],thickness=2); P5:=circle(O5,O5[2],thickness=2); P6:=circle(O6,O6[2],thickness=2);

display(circle(O,R,thickness=2,color=blue),P1,P2,P3,P4,P5,P6,plot(x^2/(4*R), x=0..10, color=green, thickness=2), pointplot([O1,O2,O3,O4,O5,O6],color=red,symbol=solidcircle,symbolsize=4),scaling=constrained, view=[-4..12,0..9] );
end proc:


plots:-animate(OneFrame,[4,r1],r1=0.4..4,frames=73);

      

 

@vv  Thank you for the solution!

@Rouben Rostamian  
Thank you for your interest and original solution!

Here is my short manual solution without trigonometry for an arbitrary right triangle:

We use the well-known formula for the radius of a circle inscribed in a right triangle  (a + b - c) / 2 . Further (see the figure) triangles  AEF = FKC , since they are similar, and the inscribed circles in them are the same. Therefore,   divides the segment  AC  in the ratio a : b . We get  AF = a*c / (a + b) . The similarity coefficient of triangle  AEF  with respect to triangle  ABC  is  k = c / (a+b) .
So we get the final answer  r = (a+b-c)*c / (2*(a+b))   (for the right triangle with sides 3, 4, 5 radius r = 5 / 7 )

Of course my and your answers for right triangles are the same:

is((a+b-c)*c/(a+b)/2=c/(a/(c-b)+2+b/(c-a))) assuming c^2=a^2+b^2;

                                       true
  

@minhthien2016  It is not difficult to do. I already wrote in one of the comments that each element of the list  L , i.e.  [x, y, z, u, v, w]  means a tetrahedron, in which  x, y, z  are the lengths of 3 edges coming out of one vertex,  u is opposite z ,  v is opposite y , w is opposite x  

@aaadoors  The condition you are writing about is necessary but not sufficient for the existence of such a tetrahedron. Read about the Cayley-Menger determinant in Wikipedia  https://en.wikipedia.org/wiki/Cayley%E2%80%93Menger_determinant  

Counterexample to your statement:
Bottom base -  (15,16,17).  Side faces -  (15,8,9), (17,9,10), (16,10,8)

@minhthien  You asked about the number of all solutions. The following code finds this number. This number is 4 times smaller than the length of the list  , because each solution is represented in this list by 4 copies, depending on the choice of the tetrahedron vertex (the first 3 numbers in each sublist of  L  are the lengths of the 3 edges coming out of one vertex).

restart;
with(combinat):
primes := [seq(ithprime(i), i = 1 .. 20)];
S:=choose(primes, 6):
F:=(x,y,z,u,v,w)->`if`(LinearAlgebra:-Determinant(<0,1,1,1,1; 1,0,x^2,y^2,z^2; 1,x^2,0,u^2,v^2; 1,y^2,u^2,0,w^2; 1,z^2,v^2,w^2,0>)>0,true,false): k:=0:
for s in S do
for t in [seq(seq([s1[],s2[]], s2=permute(convert(s,set) minus convert(s1,set))), s1=choose(s, 3))] do
x,y,z,u,v,w:=t[];
if F(t[]) and min(x+y+z,x+v+u,w+y+u,w+v+z)>max(x+w,y+v,z+u) then k:=k+1; L[k]:=t;  fi;
od: od:
L:=convert(L, list): 
k/4;

                  

 

1 2 3 4 5 6 7 Last Page 2 of 132