Kitonum

21530 Reputation

26 Badges

17 years, 84 days

MaplePrimes Activity


These are answers submitted by Kitonum

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); 

Do  restart  first and everything will work properly:

restart; 
solve(a = b+5, b); 
solve(a*x^2+b*x+c = 0, x);
                                                  

Addition. Directly in your document I get a very strange result:

I think that you should create a new document that is free of any presetting.

It is true for any real  a  and  b  if  b>0 :

is(arctan(a,b)=arctan(a/b)) assuming real, b>0;
                                             
 true


 

"restart;  iter:=5;  f[1](x,y):=3 x^(2)-y^(2);  f[2](x,y):=3 x^()*y^(2)-x^(3)-1;"

5

 

proc (x, y) options operator, arrow; 3*x^2-y^2 end proc

 

proc (x, y) options operator, arrow; 3*x*y^2-x^3-1 end proc

(1)

var := x, y

x, y

(2)

pointt := [x[n], y[n]]

[x[n], y[n]]

(3)

NULL

NULL

``

x[0] := 1; y[0] := 1

1

 

1

(4)

for n from 0 to iter do J[n] := Student[MultivariateCalculus][Jacobian]([f[1](x, y), f[2](x, y)], [var] = pointt, output = matrix); sol[n] := eval((Vector(2, {(1) = x[n], (2) = y[n]}))-1/J[n].(Vector(2, {(1) = f[1](x[n], y[n]), (2) = f[2](x[n], y[n])}))); A[n] := [n, x[n], y[n], f[1](x[n], y[n]), f[2](x[n], y[n]), J[n]]; x[n+1] := evalf[8](sol[n][1]); y[n+1] := evalf[8](sol[n][2]) end do

n := 'n'; f := 'f'; A[-1] := [n, x[n], y[n], f[1](x[n], y[n]), f[2](x[n], y[n]), J[n]]; convert(Array(-1 .. 5, 1 .. 6, proc (i, j) options operator, arrow; A[i][j] end proc), Matrix)

Matrix(%id = 4466988674)

(5)

 


 

Download q1nwtnnonlinearsys_new.mw

Function  procedure solves the problem. Required parameters of the procedure: F is an expression of the variable  x  or a procedure, R is a list of the end points of a segment (the domain of the function), N is the number of points (the ends of the segment  R  are included in this number so  N>=2).  Optional parameters: the equality  output=list  (by default) or   output=plot , Opts  is a list (additional options for plotting). 

Function:=proc(F::{algebraic,procedure}, R::list, N::posint, Eq::`=`:=(output=list), Opts::list:=[])
local f, a, b, h, L;
if F::algebraic then f:=x->F else f:=F fi;
a,b:=op(R); h:=(b-a)/(N-1);
L:=[seq(evalf[3]([a+i*h,eval(f(x),x=a+i*h)]), i=0..N-1)];
print(L);
if Eq=(output=plot) then 
plot([f(x), L], x=a..b, color=[red,blue], op(Opts)) fi;
end proc:

 

Example of use:

Function(x^2, [-2,2], 9, output=plot, [scaling=constrained, size=[500,500]]);

       

 

 

You can use  plots:-contourplot  command
See also this post  https://www.mapleprimes.com/posts/202222-Contour-Curves-With-Labels


Examples of use:

restart:
f(x,y):=exp(-(x^2+y^2)/3)*cos(2*x*y):
plots:-contourplot(f(x,y), x=-2.5..2.5, y=-2.5..2.5, contours=[seq(-0.4 .. 1, 0.1), 0.95] ,filledregions=true, coloring=["White","DarkViolet"], numpoints=50000); 

                              


ContoursWithLabels(f(x,y), -2.5 .. 2.5, -2.5 .. 2.5, {seq(-0.4 .. 1, 0.1), 0.95},Coloring = [colorstyle = HUE, colorscheme = ["White","DarkViolet"], style = surface]);

    

  Edit.      

First 130 131 132 133 134 135 136 Last Page 132 of 290