Kitonum

21435 Reputation

26 Badges

17 years, 25 days

MaplePrimes Activity


These are answers submitted by Kitonum

Here are 2 easy ways to do this without a long fraction bar:

restart;
(1/x)*(x^3-2*x^2+5*x-7);  # With long fraction bar
``(1/x)*(x^3-2*x^2+5*x-7);  # The first way
(x)^``(-1)*(x^3-2*x^2+5*x-7);  # The second way

                           

 

Here are all the $ 200 shopping options, sorted by increasing Gb:

sort([seq(seq(seq([s=32*x+64*y+128*z,['x'=x,'y'=y,'z'=z]],z=floor((200-15*x-20*y)/30)),y=0..floor((200-15*x)/20)),x=0..floor(200/15))], key=(p->rhs(p[1]))):
select(p->floor((200-eval(15*x + 20*y + 30*z,p[2]))/15)<1 and floor((200-eval(15*x + 20*y + 30*z,p[2]))/20)<1 and floor((200-eval(15*x + 20*y + 30*z,p[2]))/30)<1, %)[];
nops([%]); # The number of all the possibilities

       [s = 416, [x = 13, y = 0, z = 0]], [s = 448, [x = 10, y = 2, z = 0]], [s = 448, [x = 12, y = 1, z = 0]], [s = 480, [x = 9, y = 3, z = 0]], [s = 480, [x = 11, y = 0, z = 1]], [s = 512, [x = 6, y = 5, z = 0]], [s = 512, [x = 8, y = 2, z = 1]], [s = 512, [x = 8, y = 4, z = 0]], [s = 512, [x = 10, y = 1, z = 1]], [s = 544, [x = 5, y = 6, z = 0]], [s = 544, [x = 7, y = 3, z = 1]], [s = 544, [x = 9, y = 0, z = 2]], [s = 576, [x = 2, y = 8, z = 0]], [s = 576, [x = 4, y = 5, z = 1]], [s = 576, [x = 4, y = 7, z = 0]], [s = 576, [x = 6, y = 2, z = 2]], [s = 576, [x = 6, y = 4, z = 1]], [s = 576, [x = 8, y = 1, z = 2]], [s = 608, [x = 1, y = 9, z = 0]], [s = 608, [x = 3, y = 6, z = 1]], [s = 608, [x = 5, y = 3, z = 2]], [s = 608, [x = 7, y = 0, z = 3]], [s = 640, [x = 0, y = 8, z = 1]], [s = 640, [x = 0, y = 10, z = 0]], [s = 640, [x = 2, y = 5, z = 2]], [s = 640, [x = 2, y = 7, z = 1]], [s = 640, [x = 4, y = 2, z = 3]], [s = 640, [x = 4, y = 4, z = 2]], [s = 640, [x = 6, y = 1, z = 3]], [s = 672, [x = 1, y = 6, z = 2]], [s = 672, [x = 3, y = 3, z = 3]], [s = 672, [x = 5, y = 0, z = 4]], [s = 704, [x = 0, y = 5, z = 3]], [s = 704, [x = 0, y = 7, z = 2]], [s = 704, [x = 2, y = 2, z = 4]], [s = 704, [x = 2, y = 4, z = 3]], [s = 704, [x = 4, y = 1, z = 4]], [s = 736, [x = 1, y = 3, z = 4]], [s = 736, [x = 3, y = 0, z = 5]], [s = 768, [x = 0, y = 2, z = 5]], [s = 768, [x = 0, y = 4, z = 4]], [s = 768, [x = 2, y = 1, z = 5]], [s = 800, [x = 1, y = 0, z = 6]], [s = 832, [x = 0, y = 1, z = 6]]
                                                                            44


We see that  s=832  can only be obtained in one way.

 

Edit.
 

[seq(seq(`if`(5*x + 3*y = 100, [x,y], NULL), x=0..20), y=0..20)];
plots:-pointplot(%);

 

Here are the Euclidean algorithm and the extended Euclidean algorithm.

Euclidean algorithm 

 

GCD:=proc(a,b)
local r, r1, b1;
r:=a-b*iquo(a,b); b1:=b;
while r>0 do
r1:=b1-r*iquo(b1,r); b1:=r; r:=r1;
od;
b1;
end proc:

GCD(2680,3244);  # Example

4

(1)

 

Extended Euclidean algorithm
 

ExtendedEuclid:=proc(a::nonnegint,b::nonnegint)
local d, x, y, x1, y1, x2, y2, a1, b1, q, r;
if a<b then error "Should be a>=b" fi;
if b=0 then d:=a; x:=1; y:=0; return [d,x,y] fi;
x2:=1; x1:=0; y2:=0; y1:=1; a1:=a; b1:=b;
while b1>0 do
q:=floor(a1/b1); r:=a1-q*b1; x:=x2-q*x1; y:=y2-q*y1;
a1:=b1; b1:=r; x2:=x1; x1:=x; y2:=y1; y1:=y;
od;
d:=a1; x:=x2; y:=y2;
[d,x,y];
end proc:

ExtendedEuclid(30,12);  # Example

[6, 1, -2]

(2)

30*1+12*(-2);  # Check

6

(3)

ExtendedEuclid(65208, 18344);  # Your example

[8, 539, -1916]

(4)

65208*539+18344*(-1916);  # Check

8

(5)

 


 

Download Euclid.mw

You can use the commands  plots:-arrow, plots:-display, LinearAlgebra:-CrossProduct  to plot vectors, the results of operations on them, and animations of these. See examples below:


 

restart;
with(plots):
with(LinearAlgebra):

u, v, w:=<1, 2, 3>, <-1, 2, 3>, <-1, 2, -2>:
U:=arrow(u, color=blue):
V:=arrow(u, v, color=blue):
W:=arrow(u+v, w, color=blue):

r1:=u+v+w: r2:=u-v: r3:=CrossProduct(u,v):
R1:=arrow(r1, color=red):
R2:=arrow(v, r2, color=red):
R3:=arrow(CrossProduct(u,v), color=red):
display(U, V, W, R1, scaling=constrained);
V1:=arrow(v, color=blue):
display(U, V1, R2, scaling=constrained);
display(U, V1, R3, scaling=constrained);

 

 

 

display(plot3d([[0,0,0]])$5, display(U)$10, display([U,V])$10, display([U,V,W])$10, display([U,V,W,R1])$10, insequence, scaling=constrained);

 

 


 

Download Plotting_Vectors.mw

Try the  Explore  command for this:


 

restart;
f:=1+B*x-(1/12)*B*x^3+0.1666666667e-4*B^3*x^3-4.166666667*10^(-8)*B^4*x^4+(1/160)*B*x^5+8.333333333*10^(-11)*B^5*x^5-0.5000000000e-2*B^2*x^2+0.1666666667e-4*B*x^3*C^2-4.166666667*10^(-8)*B*x^4*C^3+8.333333333*10^(-11)*B*x^5*C^4-0.5000000000e-2*B*C*x^2+0.3333333333e-4*B^2*x^3*C-1.250000000*10^(-7)*B^3*x^4*C-1.250000000*10^(-7)*B^2*x^4*C^2+3.333333333*10^(-10)*B^4*x^5*C+5.000000000*10^(-10)*B^3*x^5*C^2+3.333333333*10^(-10)*B^2*x^5*C^3+0.7291666667e-3*B*x^4*C-0.3333333333e-5*B*x^5*C^2+0.6250000000e-3*B^2*x^4-0.2083333333e-5*B^3*x^5-0.5416666667e-5*B^2*x^5*C:
Explore(plot(f, x=-4..4, view=-10..10), B=-5...5., C=-5...5.);

 



It can be noted that changing the parameter  C  has very little effect on the graph

 

Download 2param.mw

Here is the corrected code:
 

restart:
with(PDEtools):
PDE :=  diff(y(x,t), t)-diff(y(x,t), x,x,t)-diff(y(x,t), x$2)+ diff(y(x,t), x)+y(x,t)*diff(y(x,t),x)=exp(-t)*(cos(x)-sin(x)+1/2*exp(-t)*sin(2*x));

diff(y(x, t), t)-(diff(diff(diff(y(x, t), t), x), x))-(diff(diff(y(x, t), x), x))+diff(y(x, t), x)+y(x, t)*(diff(y(x, t), x)) = exp(-t)*(cos(x)-sin(x)+(1/2)*exp(-t)*sin(2*x))

(1)

# Initial/boundary conditions
  BCs:=y(0,t) = 0, y(Pi,t)=0;
  ICs:=y(x,0) =sin(x) ;

y(0, t) = 0, y(Pi, t) = 0

 

y(x, 0) = sin(x)

(2)

pdsolve({PDE, BCs,ICs}, y(x,t));  # NULL. Maple does not find any exact solution

num_sol := pdsolve(PDE, {BCs,ICs}, numeric);
num_sol:-plot3d(x=0..1, t=0..1);

_m2208546638688

 

 

 

 
 exact_solution:=exp(-t)*sin(x);
Test1:=pdetest(y(x,t)=exact_solution,[PDE, BCs,ICs]);

exp(-t)*sin(x)

 

[0, 0, 0, 0]

(3)

 


 

Download BBM_new.mw

restart;
P:=proc(n)
option remember;
P(0):=0; P(1):=1;
if n>=2 and P(n-1)-1 in [seq(P(k),k=0..n-2)] then return 2*P(n-1) else P(n-1)-1 fi;
end proc:


Examples of use:

P(100);
seq('P(k)', k=0..50);             

                                                                121
0, 1, 2, 4, 3, 6, 5, 10, 9, 8, 7, 14, 13, 12, 11, 22, 21, 20, 19,  18, 17, 16, 15, 30, 29, 28, 27, 26, 25, 24, 23, 46, 45, 44, 43,   42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 62, 61, 60, 59
 

In the previous answer, the asymptote  y=-x  is omitted. To automatically find all asymptotes (inclined and vertical), use  Student:-Calculus1:-Asymptotes  command:

y:=sqrt(1+x^2):
Student:-Calculus1:-Asymptotes(y,x);
plot([y,x,-x], x=-5..5, -1..5, color=[red,black$2], thickness=[2,1$2], linestyle=[1,3$2], scaling=constrained); # The plotting for a visualization

                  

 

 

It seems that the natural parameterization and calculation of the arc length in this example can only be done numerically:

restart;
r:= t-><cos(2*t), sin(3*t), 4*t>:
L:=unapply(int(sqrt(add(diff(r(t),t)^~2)), t=0..t),t);
f:=s->fsolve(s=L(t),t=0..infinity);
f(1);  # Example
g:=s->r(f(s));
g(1);  # Example

L:=unapply(int(sqrt(add(diff(r(t),t)^~2)), t=t1..t2),t1,t2);
evalf(L(1,3));  # Example

                  

 

restart;
a:= plots:-display(plottools :- arrow( [1, -2], [4, -1], 0.001, 0.05, 0.1)):
b:= plots:-display(plottools :- arrow( [-1, 3], [2, 1], 0.001, 0.05, 0.1)):
c:= plots:-display(plottools :- arrow( [0, 2], [-3, 0], 0.001, 0.05, 0.1)):
plots:-display([plot([[0,0]])$5,a$10,plots:-display([a,b])$10,plots:-display([a,b,c])$10], insequence);

     

 

Replace the last line with
dsx := dsolve(sys_ode, numeric);

Example of use:
dsx(0.1);

See this help page  rtable_indexing

From Fig. 2 it is clearly seen that  f(0)=1  and  D(f)(0)<0 , which contradicts your initial conditions.

 Jayaprakash J   For movable boundary conditions you can use the  Explore  command.

 

Download BVP_new.mw

First 78 79 80 81 82 83 84 Last Page 80 of 289