Kitonum

21440 Reputation

26 Badges

17 years, 36 days

MaplePrimes Activity


These are answers submitted by Kitonum

Slightly reducing the number of digits, it is easy to check the identity of the lists:

evalb(evalf[8](listA) = evalf[8](listB));
 

restart;
f:=unapply(<r(t)*cos(t), r(t)*sin(t)>, t):
v:=diff~(f(t), t);
  # The vector of velocity


Example of use. The calculation of the vector of velocity for the curve  r(t)=t  (Archimedes' spiral) at the point  t=1 :

f:=unapply(<t*cos(t),t*sin(t)>, t):
v:=unapply(diff~(f(t),t), t):
v(t); 
# The vector of velocity
v(1);  # Velocity at the point  t=1
plots:-display(plot([convert(f(t),list)[],t=0..3], color=red, thickness=3), plots:-arrow(f(1),v(1), width=[0.01,relative=false],head_width=[0.08,relative=false],color=blue), scaling=constrained);  # Visualization

     

 


Edit.

Obviously, this is a bug. Here's a very trivial example:

f1 := x->x^2:   f2 := x->x^2:
is(f1=f2);
                                             
  false


Probably  is  command simply does not work with procedures. Obviously to check the equality of the two procedures  and  g , it suffices to verify that  f(x)=g(x)  for an arbitrary  x:

f1:=x->x^2:  f2:=t->t^2:
is(f1(a) = f2(a));
                                                 
true

Use  evalc  command for this.

Example:

evalc(exp(k*Pi*I));
                                     
 cos(k*Pi)+I*sin(k*Pi)

 

For some reason, D  operator does not work in  Physics  package, but  diff  command is working:

restart:
with(Physics[Vectors]):
Setup(mathematicalnotation = true):
r1:=t->2*t^2*_i+16*_j+(10*t-12)*_k;
r2:=t->(20-6*t)*_i+4*t^2*_j+2*t^2*_k;
v1:= unapply(diff(r1(t),t), t);
v2:= unapply(diff(r2(t),t), t);
arccos(v1(2).v2(2)/(Norm(v1(2))*Norm(v1(2)))); 
# Angle in radians
evalf(%*180/Pi);  # Angle in degrees
 

restart;
with(LinearAlgebra):
  _i:=<1,0,0>: _j:=<0,1,0>: _k:=<0,0,1>:
  # Specification of the basic vectors
r:= t->2*t^ 2*_i+16*_j+(10*t-12)*_k;  # Specification of the vector function
v:=D(r);  # Speed as a vector function
v(10);  # Speed as a vector (at the 10th sec)
Norm(%, 2);  # Speed magnitude

               

 

Edit.

For Maple  i, j, k  are just symbols. You yourself can set them as basic vectors:

i:=<1,0,0>: j:=<0,1,0>: k:=<0,0,1>:
r:=t->3*cos(5*t)*i + sin(5*t)*j +3*sin(5*t)*k:
plots:-spacecurve(r(t), t=0..2*Pi, color=red, thickness=2, labels=[x,y,z]);

                 

Edit.

 

If you want to reduce the number of significant digits in an output, use  evalf[n]  command, in which  n  is the number of desired digits. I also made a few simplifications in your code:

X := [seq(0.1e-1*i, i = 0 .. 12)]; 
Y := [0, .36, .56, .67, .73, .76, .78, .79, .79, .80, .80, .80, .80];
with(Statistics): 
f := unapply(evalf[5](Fit(a-b*exp(c*x+d), X, Y, x, initialvalues = [a = .8, b = 1, c = -50, d = -.3])), x); 
plot([f, zip(`[]`,X, Y)], 0 .. .15, color = blue, gridlines = true, style = [line, point], size = [600, 400]);

B:=proc(a, b)
local A1;
uses LinearAlgebra;
A1:=DeleteColumn(A, a);
DeleteRow(A1, b);
end proc:

# Or

B:=proc(a, b)
uses LinearAlgebra;
DeleteRow(DeleteColumn(A,a), b);
end proc:


Addition. All this can be done shorter without any procedures and without calling  LinearAlgebra  package.

Examples:

A:=<1,2,3; 4,5,6; 7,8,9>;  # Defining a matrix
A[1..2, 2..3];  # Deleted third row and first column
A[2, 2..3];  # Deleted first and third rows and first column
A[[1,3], [1,3]];  # Deleted second row and second column

                                


Edit.

See  HPM_4_new.mw

Now the system's solutions are returned for  i = 0 , but for  i=1  an error occurs in  dsolve  command. You should understand the correctness of the specification of the system for  i>=1 .

Unfortunately, the developers did not provide for legends such as you want, so in the example below I made legends using the packages  plottools  and  plots :

restart;
with(plottools):  with(plots):
A:=plot(sin(x), x=0..2*3.14, style=pointline, symbol= diamond, color=red, symbolsize=11, numpoints=40, adaptive=false):
B:=plot(cos(x), x=0..2*3.14, style=pointline, symbol= solidcircle, color=blue, symbolsize=11, numpoints=40, adaptive=false):
L1, L2:=line([2.75,0.85],[3.2,0.85],color=red), line([3.65,0.85],[4.1,0.85],color=blue):
P1:=plot([seq([2.75+i*(3.2-2.75)/3,0.85], i=1..2)],style=point,symbol= diamond, color=red, symbolsize=11):
P2:=plot([seq([3.65+i*(3.2-2.75)/3,0.85], i=1..2)],style=point,symbol= solidcircle, color=blue, symbolsize=11):
T:=textplot([[3.4,0.85,sin(x)],[4.3,0.85,cos(x)]]):
P:=polygon([[2.7,0.7],[2.7,1],[4.5,1],[4.5,0.7]], style=line, thickness=0):
plots:-display(A, B, P, L1, L2, T, P1, P2, scaling=constrained, size=[800,300]);

      

 


Addition. This is done in Maple 2017.3. In earlier versions, you may have to specify graphs for  style=line  and  style=point  separately.

restart;
L:=[[0,0,0], [1,0,0], [1,1,0], [0,1,0], [0,0,1], [1,0,1], [1,1,1], [0,1,1]]:
T:=combinat:-choose(L, 4):
Dist:=(p,q)->sqrt((p[1]-q[1])^2+(p[2]-q[2])^2+(p[3]-q[3])^2):
P:=v->combinat:-choose(v, 2):
seq(`if`(nops(convert((Dist@op)~(P(t)),set))=1, t, NULL), t=T); 
# Final result (two solutions)

             [[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 0]], [[0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]] 


A visualization:

restart;
with(plottools): with(plots): with(combinat):
A:=cuboid([0, 0, 0], [1, 1, 1], style=line, color=black):
L:=[[[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 0]], [[0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]]:
P1, P2:=choose(L[1], 2), choose(L[2], 2):
B:=seq(line(op(P1[i]), color=red, thickness=3), i=1..6):
C:=seq(line(op(P2[i]), color=blue, thickness=3), i=1..6):
display(A, B, C, axes=none);

                                

Edit.

x:=(t,vter)->vter*(1-exp(-t/vter)):
y:=(t,vter)->(1+vter)*vter*(1-exp(-t/vter))-vter*t:
plot([seq([x(t,v),y(t,v),t=0..2.5], v=[0.3,1,3]), [limit~([x(t,v),y(t,v)], v=infinity)[], t=0..2.5]], color=[brown,red,black,blue], thickness=2, view=[0..2.5,-0.3..0.5], numpoints=10000, legend=(vter=~[0.3,1,3,infinity]), legendstyle=[font=[times,14],location=right], size=[600,400]);

 

                          

 

Edit.

Use  minimize  command instead of extrema. See

2_new.mw


As an alternative you can use  Optimization:-Minimize  command:

Optimization:-Minimize(V, x = 0 .. 1); 

First 129 130 131 132 133 134 135 Last Page 131 of 289