Kitonum

21550 Reputation

26 Badges

17 years, 123 days

MaplePrimes Activity


These are answers submitted by Kitonum

1. To calculate derivatives at specific points, it is better to use the differentiation operator  D  than a combination of  diff  with  subs.
2. For a better perception of what this paraboloid looks like, it is necessary to reduce the ranges on all 3 axes.
3. Calculation confirms that the vertex of this paraboloid is (0, 0, -6).

restart;
f:=(x,y)->2*x^2+3*y^2-x*y-6;
D[1](f)(1,1); # The partial derivative by x in the point (1,1)
D[2](f)(1,1); # The partial derivative by y in the point (1,1)
p1:=plot3d(f(x,y), x=-3..3, y=-3..3, style=patchcontour, view=-7..6):
p2:=plots:-spacecurve([x,1,f(x,1)],x=-3..3, color=red, thickness=3):
p3:=plots:-spacecurve([1,y,f(1,y)],y=-3..3, color=blue, thickness=3):
plots:-display(p1,p2,p3, axes=normal);
minimize(f(x,y), x=-3..3, y=-3..3, location);

             

           

Download Q20201001_new.mw
 

restart;

Given_eq_3_37 := M = k_ * sqrt(L__1 * L__2);

M = k_*(L__1*L__2)^(1/2)

(1)

Given_eq_3_30 := k_ = sqrt((L__m)^2 / (L__1 * L__2p));

k_ = (L__m^2/(L__1*L__2p))^(1/2)

(2)

Given_eq_3_37a := combine(subs([Given_eq_3_30], Given_eq_3_37)) assuming L__1>0, L__2>0;

M = (L__2*L__m^2/L__2p)^(1/2)

(3)

 


 

Download Q20201001_new.mw

 

Use the option  free=...  , for example:


 

A := Matrix(4, 4, {(1, 1) = 1, (1, 2) = 3, (1, 3) = 4.5, (1, 4) = 7, (2, 1) = 0, (2, 2) = 2, (2, 3) = 5, (2, 4) = 9, (3, 1) = 0, (3, 2) = 0, (3, 3) = 0, (3, 4) = 0, (4, 1) = 0, (4, 2) = 0, (4, 3) = 0, (4, 4) = 0}); B := Vector(4, {(1) = 0, (2) = 0, (3) = 0, (4) = 0}); C := LinearAlgebra[LinearSolve](A, B, free = 't')

Vector[column](%id = 18446746219697584838)

(1)

W1 := C[1]; W2 := C[2]; W3 := C[3]; W4 := C[4]; Q := W1*x^4+W2*x^3+W3*x^2+W1

(HFloat(3.0)*t[2]+HFloat(6.5)*t[1])*x^4+(-HFloat(2.5)*t[2]-HFloat(4.5)*t[1])*x^3+t[2]*x^2+HFloat(3.0)*t[2]+HFloat(6.5)*t[1]

(2)

``

NULL


 

Download MultipleTCoefficients_new.mw

 

In your worksheet the function  F  was not defined correctly. Here's the revised version:


 

restart

with(LinearAlgebra)

F := proc (x) options operator, arrow; x^2 end proc

F(u(t))

u(t)^2

(1)

for n from 0 while n <= 6 do V[n] := (diff(F(sum(t^i*u[i], i = 0 .. n)), [`$`(t, n)]))/factorial(n) end do

t := 0

0

(2)

for i from 0 while i <= n-1 do A[i] := V[i] end do

u[0]^2

 

2*u[0]*u[1]

 

2*u[0]*u[2]+u[1]^2

 

2*u[0]*u[3]+2*u[1]*u[2]

 

2*u[0]*u[4]+2*u[1]*u[3]+u[2]^2

 

2*u[0]*u[5]+2*u[1]*u[4]+2*u[2]*u[3]

 

2*u[0]*u[6]+2*u[1]*u[5]+2*u[2]*u[4]+u[3]^2

(3)

NULL

``


 

Download Adomian_Polynomials_new.mw

Perhaps for your purposes it is sufficient that the index does not take on any values, but from some finite set, for example from  {1, 2, ... ,100} :

for k from 1 to 100 do
alias(F[k]=F[k](x));
od:

whattype(F[1]);
whattype(F[33]);

 

The easiest way to do this is with the  plots:-inequal  command:

restart; 
with(plots): 
inequal({x-y-1 <= 0, 0.5*y^2-x-3 <= 0}, x = -4 .. 6, y = -3 .. 5, color = red);

 

restart;
ode:=[diff(x(t),t) = 2*x(t)-y(t), diff(y(t),t) = 3*x(t)-2*y(t)]:
p1:=DEtools:-dfieldplot(ode,[x(t),y(t)],t=-2..2,x=-4..4, y=-4..4,arrows=SLIM,color=coral,labels=[``,``]):
p2:=plot(3*x,x=-4..4,y=-4..4,color=magenta):
p3:=plot(x,x=-4..4,y=-4..4,color=blue):
T:=plots:-textplot([[4.5,-0.2,x],[-0.2,4.5,y]], font=[times,16]):
plots:-display(p1,p2,p3,T, view=[-4.6..4.6,-4.6..4.6], size=[600,600]);

                  


 

restart;

B:=<<39,76,151,301,601>|<7.71E-8,5.43E-9,3.55E-10,2.11E-11,1.32E-12>|
        <26,51,101,201,401>|<6.46E-3,1.17E-4,1.88E-6,2.96E-8,4.46E-10>|
        <26,51,101,201,401>|<2.74E-4,6.34E-6,1.16E-7,1.85E-9,2.92E-11>|
        <26,51,101,201,401>|<6.48E-4,4.39E-5,2.99E-6,1.88E-7,1.18E-8>>;

for i from 1 to 5 do
   B[i, 2] := log[10](B[i, 2]):                                          
   B[i, 4] := log[10](B[i, 4]):                 
   B[i, 6] := log[10](B[i, 6]):                 
   B[i, 8] := log[10](B[i, 8]):        
       

   
end do:  # computing the log of the max-error
B: # This is the table of values we'll plot.
local log:
T:=plot([B[..,[1, 2]],B[1..1,[1, 2]], B[.., [3, 4]],B[1..1,[3, 4]],
         B[..,[5, 6]],B[1..1,[5, 6]],B[.., [7, 8]],B[1..1,[7, 8]]],
        legend = ["","BFFM","", "BHT","", "BHTRKNM", "", "BNM"],
        #title="Efficiency Curve for Example 1",
        style = ["pointline","point","pointline","point","pointline","point","pointline","point"],
        symbolsize = 15,axes = framed,
        symbol = [box,box, circle,circle,diamond,diamond,solidcircle, solidcircle],
        color=[red, red, blue,blue, black, black, green, green],
        axis = [gridlines = [colour = green, majorlines = 1,linestyle = dot]],
        labels = ["NFE", log[10](cat(`Max `,Err))]);

Matrix(5, 8, {(1, 1) = 39, (1, 2) = 0.7710000000e-7, (1, 3) = 26, (1, 4) = 0.646e-2, (1, 5) = 26, (1, 6) = 0.274e-3, (1, 7) = 26, (1, 8) = 0.648e-3, (2, 1) = 76, (2, 2) = 0.5430000000e-8, (2, 3) = 51, (2, 4) = 0.117e-3, (2, 5) = 51, (2, 6) = 0.634e-5, (2, 7) = 51, (2, 8) = 0.439e-4, (3, 1) = 151, (3, 2) = 0.3550000000e-9, (3, 3) = 101, (3, 4) = 0.188e-5, (3, 5) = 101, (3, 6) = 0.1160000000e-6, (3, 7) = 101, (3, 8) = 0.299e-5, (4, 1) = 301, (4, 2) = 0.2110000000e-10, (4, 3) = 201, (4, 4) = 0.2960000000e-7, (4, 5) = 201, (4, 6) = 0.1850000000e-8, (4, 7) = 201, (4, 8) = 0.1880000000e-6, (5, 1) = 601, (5, 2) = 0.1320000000e-11, (5, 3) = 401, (5, 4) = 0.4460000000e-9, (5, 5) = 401, (5, 6) = 0.2920000000e-10, (5, 7) = 401, (5, 8) = 0.1180000000e-7})

 

Warning, A new binding for the name `log` has been created. The global instance of this name is still accessible using the :- prefix, :-`log`.  See ?protect for details.

 

 

 


 

Download Help_data_points_new1.mw

 

In the example below, we construct 2 vertical lines (directrixes for an ellipse) in two ways:


 

restart;
a:=5: b:=3:
P:=plots:-implicitplot(x^2/a^2+y^2/b^2=1, x=-a..a, y=-b..b, color=blue):
c:=sqrt(a^2-b^2);
e:=c/a;
L1:=plot([[-a/e,t,t=-4..4],[a/e,t,t=-4..4]], color=red): # The first way
L2:=plots:-implicitplot([x=-a/e, x=a/e], x=-7..7, y=-4..4, color=red): # The second way
plots:-display(P, L1, scaling=constrained, view=[-7..7,-4..4]);
plots:-display(P, L2, scaling=constrained, view=[-7..7,-4..4]);

4

 

4/5

 

 

 

 


Edit. We can also build any straight lines using the plottools:-line  command (the third way).

Download vl-2.mw

Example:

restart;
f:=x->x^3;
(D@@2)(f)(x);
(D@@2)(f)(3);

 

Let (x0,y0) is a point on the ellipse E.


 

restart;
eq:=x0*x/a^2+y0*y/b^2=1: # The equation of the tangent in the point(x0,y0) (from wiki)
OT:=solve(eval(eq,y=0),x);
Om:=x0:
Om*OT;

k:=-coeff(lhs(eq),x)/coeff(lhs(eq),y); # The slope of the line eq
eq1:=y-y0=-1/k*(x-x0); # The equation of the normal in the point(x0,y0)
ON:=solve(eval(eq1,y=0),x);
simplify(ON,{a^2-b^2=c^2});
 

a^2/x0

 

a^2

 

-x0*b^2/(a^2*y0)

 

y-y0 = a^2*y0*(x-x0)/(x0*b^2)

 

(a^2-b^2)*x0/a^2

 

c^2*x0/a^2

(1)

 


Edit.

Download prop_23.mw

 

Or (an example):

restart;
p:=plot(exp(x), x=-2..2);
plottools:-reflect(p, [[0,0],[1,1]]);

 

Probably the procedures  IntegerPoints (or  IntegerPoints1) from the post  https://www.mapleprimes.com/posts/202437-Integer-Points-In-Polyhedral-Regions  will be useful for solving your problems.

You can use nested  seq  for this. What we get is called not permutations but Cartesian product  


 

restart;
S:={0,1,2}:
seq(seq(seq(seq([u,x,y,z], z=S), y=S), x=S), u=S);

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

(1)

nops([%])=ifactor(nops([%]));

81 = ``(3)^4

(2)

 


 

Download nested_seq.mw


 

restart;
opt1:="a=1, b=2":
opt2:="a=0.7, b=3":
f:=a*x^b:
plot([eval(f,[parse(opt1)]),eval(f,[parse(opt2)])], x=-2..2, color=[red,blue], legend=[opt1,opt2], legendstyle=[location=left, font=[times,16]], scaling=constrained, size=[600,600]);

 

 


Edit: Here's another (prettier but more complex) version:

restart;
opt1:="a=1, b=2":
opt2:="a=0.7, b=3":
f:=a*x^b:
A:=plot([eval(f,[parse(opt1)]),eval(f,[parse(opt2)])], x=-2..2, color=[red,blue], thickness=2):
B:=plot([5.2,4.7], x=-0.9..-0.4, color=[red,blue], thickness=3):
T:=plots:-textplot([[-2.9,5.2,opt1],[-3.2,4.7,opt2]], font=[times,16], align=right):
plots:-display(A,B,T, scaling=constrained, size=[600,500]);

                          

 

Download legend.mw

First 51 52 53 54 55 56 57 Last Page 53 of 290