Kitonum

21530 Reputation

26 Badges

17 years, 84 days

MaplePrimes Activity


These are answers submitted by Kitonum

Sol:=eval([A, B, C], sol);
Sol[1];

                                      Sol:=[1, 2, 3]
                                              1

Set  Digits  to 10 (by default) and everything will be alright (for better viewing, I slightly increased the ranges):

Digits := 10: 
AA := inequal(eq5 <= 0, beta = -5 .. 10, alpha = -5 .. 10, axes = normal, labels = ["&beta;", "&alpha;"], title = [Delta = Del1]);

                           

 

Try  subs  command (after restart command):

restart;
subs([A=-7/6,B=4/15,C=19/10], A/(s+1)+B/(s-2)+C/(s+3));

 

                                


Edit.  

We assume that some function  f: X -> Y   is given by the set of pairs  [x, y] , where  y=f(x) . Two simple procedures solve the problem.

IsOneToOne:=proc(F::set(list))
local L;
uses ListTools;
L:=[Categorize((x,y)->x[2]=y[2], convert(F,list))];
if nops(L)=nops(F) then true else false fi;
end proc:

Examples of use:
IsOneToOne({[1,1], [2,3], [3,3]});
IsOneToOne({[1,1], [2,3], [3,4]});

                                                         false
                                                          true


In the second procedure  IsOnTo  additionally the set  Y  must be specified.

IsOnTo:=proc(F::set(list), Y::set)
local Y0;
Y0:=map(t->t[2], F);
if nops(Y0)=nops(Y) then true else false fi;
end proc:

Examples of use:
IsOnTo({[1,1],[2,3],[3,3]}, {1,3});
IsOnTo({[1,1],[2,3],[3,3]}, {1,3,4});
                                                                 
true
                                                                false

                                                                

 

The procedure  N  for any  n  gives the total number of such sequences of length  n:

N:=n->sum(binomial(m+1,n-m), m=floor(n/2)..n);


Examples of use:
N(1), N(2), N(3), N(4), N(10), N(100);

                                   2, 3, 5, 8, 144, 927372692193078999176


Addition. It is interesting that there is equality  N(n)=F(n+2), where  F(n)  is  Fibonacci sequence. See  https://en.wikipedia.org/wiki/Fibonacci_number

Example:

r:=rand(1..6):
L:=['r'() $ 30];
ListTools:-Occurrences(5, L);

Use the functional assignment:

f:= eta -> 1 - exp(-eta);

1. A function  f  can be applied only to one object or to a list (or to a set or to array) of objects by elementwise operation.

2. A argument (arguments) of a function  f  should be inside of parenthesis.

f([seq(i, i = 1 .. 2)][]);                      
f(add(i, i = 1 .. 2));

  

Three simple procedures  IsReflexive, IsSymmetric, IsTransitive  solves your problems.

IsReflexive:=proc(X::set, Y::set(list))
local k, y;
k:=0;
for y in Y do
if y[1]=y[2] then k:=k+1 fi;
od;
if nops(X)=k then true else false fi;
end proc:

Examples of use:

IsReflexive({a,b,c}, {[a,a],[b,b],[c,c],[a,b],[b,a]});
IsReflexive({a,b,c}, {[a,a],[b,b],[a,b],[b,a]});

                              true
                             false

                             

IsSymmetric:=proc(X::set, Y::set(list))
local k, y;
k:=0;
for y in Y do
if [y[2],y[1]] in Y then k:=k+1 fi;
od;
if k=nops(Y) then true else false fi;
end proc:

Examples of use:
IsSymmetric({a,b,c},{[a,a],[b,b],[a,b],[b,a]});
IsSymmetric({a,b,c},{[a,a],[b,b],[a,b],[b,a],[a,c]});

                              true
                             false


IsTransitive:=proc(X::set, Y::set(list))
local y1, y2;
for y1 in Y do
for y2 in Y do
if y1[2]=y2[1] and not ([y1[1],y2[2]] in Y) then return false fi;
od; od;
true;
end proc:

Examples of use:
IsTransitive({a,b,c}, {[a,a],[b,b],[a,b],[b,c]});
IsTransitive({a,b,c}, {[a,a],[b,b],[a,b],[a,c]});
IsTransitive({a,b,c}, {[a,a],[b,b],[a,b],[b,c],[a,c]});
                           
 false
                              true
                              true
 

In Maple 2015 - 2017 there are no any changes:

restart;
(9*b^2 - r^2 - a^2*cos(theta)^2)^2;
                                           


You probably work with an older version of Maple. Try this option:

restart;
``(9*b^2 - r^2 - a^2*cos(theta)^2)^2;

@Daniel Skoog  A nice application (thumb up)!

Here's an alternative solution. For greater clarity, I made the cuboid opaque and increased the number of frames by 20 times. To create the animation,  more convenient  plots:-animate  command is used. The same plot shows the height change  h  and the value of the corresponding volume  V  (the height changes in 0.01 increments). Using the animation panel for step-by-step displaying of frames, we can see that the largest volume will be approximately equal to 1.19 for a height equal to 0.67  (I took the height of the pyramid to 2):

restart;
with(plots): with(plottools): 
Digits:=6:
Y:=[[-1,-1,0],[1,-1,0],[1,1,0],[-1,1,0],[0,0,2]]:

Pyramid:=display(curve([seq(y,  y=Y[1..-2]), Y[1]], thickness=3, color="Blue"), seq(line(y,Y[-1], color="Blue", thickness=3), y=Y[1..-2])):
 
animate(display, [cuboid([(2-a)/2,(2-a)/2,0],[-(2-a)/2,-(2-a)/2,a], color="Yellow"), textplot3d([[-0.5,1.4,2, V=a*(2-a)^2], [-0.5,1.4,2.2, h=a]], font=[times,18])], background=Pyramid, a=0..2, frames=201, axes=none, scaling=constrained, orientation=[60,70], paraminfo=false, lightmodel=light1);

                  


Here is a screenshot of the animation frame, which shows the cuboid of the largest volume:

                   

maximize(h*(2-h)^2, h=0..2, location);  # Exact calculation of the largest cuboid volume
evalf(%);

                                  

                              1.18519, {[{h = .666667}, 1.18519]}
 

I do not know the reason why  applyrule  does not work, because the documentation for this command is very poor. Use  evalindets  command instead:

restart;
eq1 := a[n+2]+4*a[n+1]+10*a[n]-5*n-1;
evalindets(eq1, `indexed`, t->op(t)*p+q+b[op(t)]);

 

Try

D[1](u)(0,t)=0, D[1](u)(L,t)=0


Addition.  I think that your teacher's proposal is incorrect in any version of Maple. Here is an example:

restart;
u:=(x,t)->x^2+3*x*t+t^4:
diff(u(0,t),x), diff(u(L,t),x);
 # An incorrect way
# Two valid options:
D[1](u)(0,t), D[1](u)(L,t);   # The first way (the best one)
eval(diff(u(x,t),x), x=0), eval(diff(u(x,t),x), x=L);   # The second way


The notation that you are proposing is also incorrect in Maple, because derivative must first be calculated at an arbitrary point. Here is an valid way:

restart;
Du:=diff(u(x,t),x);
eval(Du, x=0);

                        

Formally to extract the sequence of used arithmetic operators from  an expression you can as follows:

a:=3*x^3-5*x^2+3*y:
S:=convert(a,string):
Operators:={"+", "-", "*", "^"}: 
StringTools:-Select(s->is(s in Operators), S);
seq(s, s=%);
ListTools:-Collect([%]);

                               


Edit.

First 142 143 144 145 146 147 148 Last Page 144 of 290