Kitonum

21435 Reputation

26 Badges

17 years, 25 days

MaplePrimes Activity


These are answers submitted by Kitonum

plots:-implicitplot((x-2)^2*(x-3)+epsilon^2=0, x=-1..6, epsilon=-5..5, gridrefine=4);
solve((x-2)^2*(x-3)+epsilon^2=0, x, parametric, real);


So we have 3 values for epsilon:  -2*sqrt(3)*(1/9),  0,  2*sqrt(3)*(1/9)

Use the  eliminate  command for this. The reverse representation is ambiguous and depends on the choice of parameters. For your example, if we take  x  and  y  as parameters, it is trivial:


 

restart;

F:=eliminate({x=s*cos(t),y=s*sin(t),z=s^2}, {s,t});

[{s = z^(1/2), t = arcsin(y/z^(1/2))}, {-x+z^(1/2)*(-(y^2-z)/z)^(1/2)}], [{s = -z^(1/2), t = -arcsin(y/z^(1/2))}, {x+z^(1/2)*(-(y^2-z)/z)^(1/2)}]

(1)

solve(F[1,2], z);
solve(F[2,2], z);

{z = x^2+y^2}

 

{z = x^2+y^2}

(2)

solve(z=x^2+y^2,{x,y,z});

{x = x, y = y, z = x^2+y^2}

(3)

 


 

Download elim.mw

A:=<1,2; 3,4>;
B:=<5,6; 7,8; 9,10; 11,12>;
<A[1], B[2], B[4]>;

                                       

 

 

An alternative to the  map  command would be the  seq  command:

restart;
L:=[[1,2,3],[7,8,9],[13,12,11]]:
[seq(l[3], l=L)];
L1:=[1, [2, 3], [4, [5, 6], 7], [8, 3], 9]:
[seq(`if`(l::list,l[1],l), l=L1)];

 


 

restart;

local D;
l:=0.5;a:=0.1; rho:=2700;h:=.0005;
E:=72.4*10^9;v:= 0.3;
n:=6;
m:=1;

AD:=10;
mu:=(2*a*2.35)/l;
nu:=sin(mu*l/(2*a))/sinh(mu*l/(2*a)); omega[m,n]:= 3067.173621;

.5

 

.1

 

2700

 

0.5e-3

 

0.7240000000e11

 

.3

 

6

 

1

 

10

 

.9400000000

 

.1369508410

 

3067.173621

(1)

 

E:=1:k[1,1]:=-5.660173062*10^10:k[1,2]:=-2.8552873062*10^10:k[1,3]:=-8.68528173062*10^10:k[1,4]:=-7.6788528173062*10^10:k[1,5]:=-1.52568528173062*10^10:k[2,1]:=-15.660173062*10^10:k[2,2]:=-21.8552873062*10^10:k[2,3]:=-18.68528173062*10^10:k[2,4]:=-71.6788528173062*10^10:k[2,5]:=-10.52568528173062*10^10:
k[3,1]:=-5.65257260173062*10^10:k[3,2]:=-27.8552552873062*10^10:k[3,3]:=-81.6854428173062*10^10:k[3,4]:=-9.67858528173062*10^10:k[3,5]:=-3.52568528173062*10^10:
k[4,1]:=-51.111660173062*10^10:k[4,2]:=-21.811552873062*10^10:k[4,3]:=-18.68528173062*10^10:k[4,4]:=-17.6788528173062*10^10:k[4,5]:=-11.52568528173062*10^10:
k[5,1]:=-6.660173062*10^10:k[5,2]:=-61.852873062*10^10:k[5,3]:=-82.68528173062*10^10:k[5,4]:=-72.6788528173062*10^10:k[5,5]:=-21.52568528173062*10^10

-0.2152568528e12

(2)

 

 

S:=(Matrix([[rho*h*omega[m,n]^2+k[1, 1],k[1,2],k[1,3],k[1,4]],[k[2,1],rho*h*omega[m,n]^2+k[2,2],k[2,3],k[2,4]],[k[3,1],k[3,2],k[3,3]+rho*h*omega[m,n]^2,k[3,4]],[k[4,1],k[4,2],k[4,3],k[4,4]+rho*h*omega[m,n]^2]])).(Vector(1..4,[[A],[B],[C],[D]]))=-E*(Vector(1..4,[k[1,5],k[2, 5],k[3,5],k[4,5]]));

(Vector(4, {(1) = -0.5658903042e11*A-0.2855287306e11*B-0.8685281731e11*C-0.7678852817e11*D, (2) = -0.1566017306e12*A-0.2185401729e12*B-0.1868528173e12*C-0.7167885282e12*D, (3) = -0.5652572602e11*A-0.2785525529e12*B-0.8168417280e12*C-0.9678585282e11*D, (4) = -0.5111166017e12*A-0.2181155287e12*B-0.1868528173e12*C-0.1767758280e12*D})) = (Vector(4, {(1) = 0.1525685282e11, (2) = 0.1052568528e12, (3) = 0.3525685282e11, (4) = 0.1152568528e12}))

(3)

solve(convert((lhs-rhs)(S), list))

{A = -.1373190087, B = -.1795797543, C = 0.3604957767e-1, D = -0.7148975043e-1}

(4)

 


Addition. You do not need to form a system of equations in any form. Using the  LinearAlgebra:-LinearSolve  command you can solve the system simply by specifying the matrix of coefficients in front of the unknowns and the vector of the right side:

M:=(Matrix([[rho*h*omega[m,n]^2+k[1, 1],k[1,2],k[1,3],k[1,4]],[k[2,1],rho*h*omega[m,n]^2+k[2,2],k[2,3],k[2,4]],[k[3,1],k[3,2],k[3,3]+rho*h*omega[m,n]^2,k[3,4]],[k[4,1],k[4,2],k[4,3],k[4,4]+rho*h*omega[m,n]^2]]));
V:=-E*(Vector(1..4,[k[1,5],k[2, 5],k[3,5],k[4,5]]));
LinearAlgebra:-LinearSolve(M, V);

Download solve_(1)_new.mw

The  AlmostCarmichaelNumbers  procedure finds all the numbers that meet your requirements for a number  k  and for a range  (which you specify when using) .

AlmostCarmichaelNumbers:=proc(k::posint,R::range)
local T, N, m, n, L;
T:=table(); N:=0; m:=lhs(R);
for n from `if`(m::odd,m,m+1) by 2 to rhs(R) do
L:=ifactors(n);
if nops(L[2])=k then if `and`(map(t->is(t[2]=1),L[2])[]) and `+`(seq(`if`(irem(n-1,t[1]-1)=0,1,0),t=L[2]))=k-1 then N:=N+1; T[N]:=n fi; fi;
od;
convert(T, list);
end proc:

Examples of use for k=3, 4, 5 :

AlmostCarmichaelNumbers(3,1..10000);
AlmostCarmichaelNumbers(4,1..10000);
AlmostCarmichaelNumbers(5,1..10000);
         
    

A:=(-108*q - 12*sqrt(12*p^3 + 81*q^2))^(1/3)/6;
B:=(A^3)^(1/3);
c:=op([1,2], B);
subsop([1,2]=-(c^2)^(1/2), B);


Addition. This method can be used in some cases when simplifying radicals, for example:

restart;
A:=sqrt(11-4*sqrt(6))+sqrt(21+6*sqrt(6));
sqrt(A^2);

 

The differential equation must be entered with explicit indication of the derivative (not differentials) using Maple syntax. For your example, you can do this:

restart;
de:=2*y*dx+3*x*dy=0;
subs([dy=diff(y(x),x)*dx,y=y(x)], de);
dsolve(%, y(x));

             

 

Just differentiate your equation 2 times, taking  y as a function of  :

restart;
Curves:=x^2+A*y(x)^2=B:
Eq:=diff(Curves,x,x);
dsolve({Eq,y(0)=sqrt(B/A),D(y)(0)=0}, y(x), implicit);
solve(%, B)=B;

         


Edit. Sure enough the right solution is Rouben's one, not me. I forgot to eliminate the constant  . Rouben very politely "did not notice" this error.

You can do this (like as in the original post) without  DataFrame  , using only matrices:

A:=Matrix(3, (i,j)->i);
DF:=< <<D1|D2|D3>, A> | <``,D1,D2,D3> >;

    

You can use the  Explore  command for this:

Explore(plot([sqrt(a*x^3+b*x^2+c*x+d),-sqrt(a*x^3+b*x^2+c*x+d)], x=-3..3, color=red, view=-7..7), a=-3...3., b=-3...3., c=-3...3., d=-3...3.);

 

Maple's possibilities are not limitless, so just reduce the ranges for calculations. It is easy to check that one of the roots is exact 0:


 

restart; Digits := 20

r1 := sqrt(2^2-I*z)

(4-I*z)^(1/2)

(1)

r2 := sqrt(2^2+I*z)

(4+I*z)^(1/2)

(2)

F := -r2*(r1^2-(1/5)*2^2)^2*cosh((1/150)*r1*Pi)*sinh((1/150)*r2*Pi)+r1*(r2^2-(1/5)*2^2)^2*cosh((1/150)*r2*Pi)*sinh((1/150)*r1*Pi)+z*(-r1^2+r2^2)*cosh((1/150)*r1*Pi)*cosh((1/150)*r2*Pi)

-(4+I*z)^(1/2)*(16/5-I*z)^2*cosh((1/150)*(4-I*z)^(1/2)*Pi)*sinh((1/150)*(4+I*z)^(1/2)*Pi)+(4-I*z)^(1/2)*(16/5+I*z)^2*cosh((1/150)*(4+I*z)^(1/2)*Pi)*sinh((1/150)*(4-I*z)^(1/2)*Pi)+(2*I)*z^2*cosh((1/150)*(4-I*z)^(1/2)*Pi)*cosh((1/150)*(4+I*z)^(1/2)*Pi)

(3)

RootFinding:-Analytic(F, z, re = -1000 .. 1000, im = -100 .. 5000)

-.32383214677931941878, -47.436599289272340538, 0.21483438735350000000e-19*I

(4)

eval(F, z = 0)

0

(5)

``


 

Download calculs_new.mw

You can use the inert form  Diff  that will not be calculated, but can be calculated at any time with the command  value :

u[1](T[1], T[2], T[3]):=exp(T[1]*I):
Diff(diff(u[1](T[1], T[2], T[3]), T[1]), T[2]);
value(%);

                                             

 

Of course, you can make inert differentiation for both variables:

u[1](T[1], T[2], T[3]):=exp(T[1]*I):
Diff(u[1](T[1], T[2], T[3]), T[1], T[2]);
value(%);

 

Here are 2 customised legends with vertical alignment (text rotation is available only from Maple 2018):

restart;
with(plots):
Plots:=plot([t^2,t^3], t=-2..2, color=[blue,red], linestyle=[1,3], view=-2..2, labels=[t,"x,y"]):
Lines:=plot([[1.6,t,t=0.9..1.3],[1.9,t,t=0.9..1.3]], color=[blue,red], linestyle=[1,3]):
Labels:=textplot([[1.55,1.55,x=t^2,rotation=Pi/2],[1.85,1.55,y=t^3,rotation=Pi/2]]):
display(Plots, Lines, Labels);

           

 

Use  seq  command for this.

Example:

seq(sin(x), x=0..evalf(Pi/4), 0.1);

     0, 0.9983341665e-1, .1986693308, .2955202067, .3894183423, .4794255386, .5646424734, .6442176872

First 85 86 87 88 89 90 91 Last Page 87 of 289