Education

Teaching and learning about math, Maple and MapleSim

Another application for the study of rational numbers in operations, generating fraction, etc.

 

Numeros_Racionales.mw

(in spanish)

 

Atte.

L.AraujoC.

The work contains two procedures called  SetPartition  and  NumbPart .

The first procedure  SetPartition  generates all the partitions of a set  S  into disjoint subsets of specific sizes defined by a list  Q. The third optional parameter is the symbol  `ordered`  or  `nonordered`  (by default) . It determines whether the order of subsets in a partition is significant.

The second procedure  NumbPart  returns the number of all partitions of the sizes indicated by  Q .

 

Codes of these procedures:

SetPartition:=proc(S::set, Q::list(posint), K::symbol:=nonordered)  # Procedure finds all partitions of the set  S  into subsets of the specific size given Q.

local L, P, T, S1, S2, n, i, j, m, k, M;

uses ListTools,combinat;

if `+`(op(Q))<>nops(S) then error "Should be `+`(op(Q))=nops(S)" fi;

L:=convert(Q,set);

T:=[seq([L[i],Occurrences(L[i],Q)], i=1..nops(L))];

P:=`if`(K=ordered,convert(T,list),convert(T,set));

S1:=S;  S2:={`if`(K=ordered,[],{})}; n:=nops(P);

for i to n do

m:=P[i,1]; k:=P[i,2];

for j to k do

S2:={seq(seq(`if`(K=ordered,[op(s),t],{op(s),t}), t=choose(S1 minus `union`(op(s)),m)), s=S2)};

od; od;

if K=ordered then {map(op@permute,S2)[]} else S2 fi;

end proc:

 

NumbPart:=proc(Q::list(posint), K::symbol:=nonordered)  # Procedure finds the number of all partitions of a set into subsets of the specific size given  Q

local L, T, P, n, S, N;

uses ListTools;

L:=convert(Q,set);

T:=[seq([L[i],Occurrences(L[i],Q)], i=1..nops(L))];

P:=`if`(K=ordered,convert(T,list),convert(T,set));

n:=nops(P);  N:=add(P[i,2], i=1..n);

S:=add(P[i,1]*P[i,2],i=1..n)!/mul(P[i,1]!^P[i,2],i=1..n)/mul(P[i,2]!,i=1..n);

if K=nonordered then return S else  S*N! fi;

end proc:

 

Examples of use:

SetPartition({a,b,c,d,e}, [1,1,3]);  nops(%);  # Nonordered partitions and their number

SetPartition({a,b,c,d,e}, [1,1,3], ordered);  nops(%);  # Ordered partitions and their number

 

 

Here's a more interesting example. 5 fruits  {apple, pear, orange, mango, peach}  must be put on three plates so that  on each of two plates there are 2  fruits, and there is one fruit  on one plate. Two variants to solve: 1) plates are indistinguishable and 2) different plates. In how many ways can this be done?

SetPartition({apple,pear,orange,mango,peach}, [1,2,2]);  nops(%);  # plates are indistinguishable

 

NumbPart([1,2,2], ordered);  # Number of ways for  different plates

                                                              90

 

Another example - how many ways can be divided  100 objects into 10 equal parts?

NumbPart([10$10]);

    64954656894649578274066349293466217242333450230560675312538868633528911487364888307200

 

 SetPartition.mws

Application of the properties of real numbers such as divisible factors, quantity and sum of prime divisors, DCM and MCM among others. All the technology embedded components of Maple.

 

Propiedad_de_los_Numeros.mw

 

Atte.

L.AraujoC.

 

 

 

I would like to pay attention to an article by David Austin "The Stable Marriage Problem and School Choice"

Here is its inroduction:

" Every year, 75,000 New York City eighth graders apply for admission to one of the city's 426 public high schools. Until recently, this process asked students to list five schools in order of preference. These lists were sent to the schools, who decided which applicants to accept, wait-list, or reject. The students were then notified of their status and allowed to accept only one offer and one position on a waiting list. After the students had responded to any offers received, schools with unfilled positions made a second round of offers, and this process continued through a concluding third round.

This process had several serious problems. At the end of the third round of offers, nearly half of the students, usually lower-performing students from poor families, had not been accepted into a school. Many of these students waited through the summer only to learn they had been matched with a school that was not on their list of five schools.

This process also encouraged students and their parents to think strategically about the list of schools they submitted. Students that were rejected by the school at the top of their list might find that their second-choice school had no vacancies in the second round of offers. This made it risky for many students to faithfully state their true preferences, a view encouraged by the Education Department's advice that students "determine what your competition is" before creating their lists of preferred schools.

Lastly, schools would often underrepresent their capacity hoping to save positions for students who were unhappy with their initial offerings.

In the end, the process couldn't place many students while it encouraged all parties, both students and schools, to strategically misrepresent themselves in an effort to obtain more desirable outcomes not possible otherwise. Widespread mistrust in the placement process was a natural consequence.

Using ideas described in this column, economists Atila Abdulkadiroglu, Parag Pathak, and Alvin Roth designed a clearinghouse for matching students with high schools, which was first implemented in 2004. This new computerized algorithm places all but about 3000 students each year and results in more students receiving offers from their first-choice schools. As a result, students now submit lists that reflect their true preferences, which provides school officials with public input into the determination of which schools to close or reform. For their part, schools have found that there is no longer an advantage to underrepresenting their capacity.

The key to this new algorithm is the notion of stability, first introduced in a 1962 paper by Gale and Shapley. We say that a matching of students to schools is stable if there is not a student and a school who would prefer to be matched with each other more than their current matches. Gale and Shapley introduced an algorithm, sometimes called deferred acceptance, which is guaranteed to produced a stable matching. Later, Roth showed that when the deferred acceptance algorithm is applied, a student can not gain admittance into a more preferred school by strategically misrepresenting his or her preferences.

This column will present the game-theoretic results contained in the original Gale-Shapley paper along with Roth's subsequent analysis. Pathak calls the deferred acceptance algorithm "one of the great ideas in economics," and Roth and Shapley were awarded the 2012 Nobel Prize in economics for this work"

It would be nice to realize that in Maple.

 

 

Maple T.A. 10 introduced two new question types: Sketch and Free Body Diagram. To assist users in learning the new question types, Maplesoft has created a few hundred samples to look at. These sample questions are already featured on the Maple T.A. Cloud, but you can also download the course modules below. 

Sketching Questions - This course module contains 309 sketch questions. Areas covered include: functions, exponential functions, inequalities, linear equations, logarithmic functions, piecewise functions, quadratic equations, systems of equations and transformations of functions.

Free Body Diagram Questions - This course module contains 118 free body diagram questions. Areas covered include: Electricity, Magnetism and Mechanics.

Jonny Zivku
Maplesoft Product Manager, Maple T.A.

Maplesoft regularly hosts live webinars on a variety of topics. Below you will find details on an upcoming webinar we think may be of interest to the MaplePrimes community.  For the complete list of upcoming webinars, visit our website.

See What’s New in Maple 2015 for Educators

Maple 2015 is a major new release of Maple, the technical computing software used for education, research, and development involving mathematics, engineering, and the sciences. With Maple 2015, Maplesoft offers important new abilities to both educators and researchers, particularly in the areas of data analysis, application development and statistics education. This webinar will provide a complete overview of these new features, including:

• A new interface to access, work with, and visualize millions of datasets in the areas of finance, economics, and demographics.
• New facilities for developing Math Apps, including a new microphone and speaker component.
• Advances in integration, differential equations, interactive maps, group theory, physics, and more.
• New Clickable Math tools, including palettes and 60 new interactive Math Apps.
• New tutors, palettes and Math Apps designed explicitly for teaching and learning statistics.
• And more!

To join us for the live presentation, please click here to register.

Maplesoft will be hosting the 2nd annual Maple T.A. User Summit June 15 - 17 in New York City, USA.

Don’t miss this opportunity to learn about new trends in online education while networking and socializing with fellow educators and Maple T.A. users in the city that never sleeps!

Conference highlights include:

  • Hear from long term users who have used the Maple T.A. technology to transform their classroom experiences.
  • Get comprehensive hands-on Maple T.A. training.
  • Learn about new technology developments at Maplesoft and how they can provide exceptional user experiences that have the power to ‘surprise and delight’.
  • Network with other educators and Maple T.A. users from around the world.
  • Take advantage of the social events organized as part of this summit. Socialize with peers and enjoy the sights and sounds of this amazing city.

We invite users who are using Maple T.A. in an innovative way in their classroom to submit a presentation proposal by March 18, 2015. For details, please visit: https://webstore.maplesoft.com/taconference/MapleTA_Summit_CFP.pdf

For more details, preliminary agenda, and to register, please visit our website: https://webstore.maplesoft.com/taconference/

Jonny
Maplesoft Product Manager, Maple T.A.

      Method for solving underdetermined systems of nonlinear equations. The idea of the method is to find a connected subset of a set of solutions of the system by moving along this subset from one point in different directions. The direction of movement can be changed in each point.

      Very simple example of  single equation with three variables:

                                   (x1 ^ 4 + x2 ^ 4 - 2) ^ 2 + x3 ^ 4 - 1 = 0;

      From the point (0, -1.31607, 0) or (0, 1., 0) or any point if it is a solution, we first move for a variety of solutions along a curve parallel to the axis Ox3, and then from each point of this curve is moving in a direction parallel to x1Ox2 or vice versa. So we get all the solutions.
      This works for any space of any number of the equations when the number of equations is less than the number of variables.
underdetermined_system.mw

 

 

 

A rigid rotating body is a moving mass, so that kinetic energy can have expressed in terms of the angular speed of the object and a new quantity called moment of inertia, which depends on the mass of the body and how it is such distributed mass. Now we'll see with maple.

 

Momento_de_Inercia.mw

(in spanish)

Atte.

L. Araujo C.

In this section, we will consider several linear dynamical systems in which each mathematical model is a differential equation of second order with constant coefficients with initial conditions specifi ed in a time that we take as t = t0.

All in maple.

 

Vibraciones.mw

(in spanish)

 

Atte.

L.AraujoC.

The procedure  Partition  significantly generalizes the standard procedure  combinat[partition]  in several ways. The user specifies the number of parts of the partition, and can also set different limitations on parts partition.

Required parameters:  n - a nonnegative integer, - a positive integer or a range (k  specifies the number of parts of the partition). The parameter  res  is the optional parameter (by default  res is  ). If  res  is a number, all elements of  k-tuples must be greater than or equal  res .  If  res  is a range  a .. b ,   all elements of  k-tuples must be greater than or equal  a  and  less than or equal  b . The optional parameter  S  - set, which includes elements of the partition. By default  S = {$ 0.. n} .

The code of the procedure:

restart;
Partition:=proc(n::nonnegint, k::{posint,range}, res::{range, nonnegint} := 1, S::set:={$0..n})  # Generates a list of all partitions of an integer n into k parts
local res1, k_Partition, n1, k1, L;
if type(args[-1],set) and S[1]=0 then res1:=0 else res1:=res fi;
k_Partition := proc (n, k::posint, res1, S)
local m, M, a, b, S1, It, L0;
m:=S[1]; M:=S[-1];
if res1::nonnegint then a := max(res1,m); b := min(n-(k-1)*a,M)  else a := max(lhs(res1),m); b := min(rhs(res1),M) fi;
S1:={$a..b} intersect S;
if b < a or b*k < n or a*k > n  then return [ ] fi;
It := proc (L)
local m, j, P, R, i, N;
m := nops(L[1]); j := k-m; N := 0;
for i to nops(L) do
R := n-`+`(op(L[i]));
if R <= b*j and a*j <= R then N := N+1;
P[N] := [seq([op(L[i]), s], s = {$ max(a, R-b*(j-1)) .. min(R, b)} intersect select(t->t>=L[i,-1],S1) )] fi;
od;
[seq(op(P[s]), s = 1 .. N)];
end proc;
if k=1 then [[b]] else (It@@(k-1))(map(t->[t],S1))  fi;
end proc; 
if k::posint then return k_Partition(n,k,res1,S) else n1:=0;
for k1 from lhs(k) to rhs(k) do
n1:=n1+1; L[n1]:=k_Partition(n,k1,res1,S)
od;
L:=convert(L,list);
[seq(op(L[i]), i=1..n1)] fi;
end proc:

 

Examples of use:

Partition(15, 3);

 

 

Partition(15, 3..5, 1..5);  # The number of parts from 3 to 5, and each summand from 1 to 5

 

 

Partition(15, 5, {seq(2*n-1, n=1..8)});  # 5 summands and all are odd numbers 

 

 

A more interesting example.
There are  k banknotes in possible denominations of 5, 10, 20, 50, 100 dollars. At what number of banknotes  k  the number of variants of exchange  $140  will be maximum?

n:=0:

for k from 3 to 28 do

n:=n+1: V[n]:=[k, nops(Partition(140, k, {5,10,20,50,100}))];

od:

V:=convert(V, list);

max(seq(V[i,2], i=1..nops(V)));

select(t->t[2]=8, V);

 

Here are these variants:

Partition(140, 10, {5,10,20,50,100});

Partition(140, 13, {5,10,20,50,100});

 

 Edit. Fixed a bug in the code that caused some solutions to be lost if the third argument to the procedure was a set that included 0 .

 

 

 

The equations of motion for a rigid body can be obtained from the principles governing the motion of a particle system. Now we will solve with Maple.

 

Dinamica_plana_de_cuerpos_rigidos.mw

(in spanish)

Atte.

Lenin Araujo Castillo

Corrección ejercico 4

 

4.- Cada una de las barras mostradas tiene una longitud de 1 m y una masa de 2 kg. Ambas giran en el plano horizontal. La barra AB gira con una velocidad angular constante de 4 rad/s en sentido contrario al de las manecillas del reloj. En el instante mostrado, la barra BC gira a 6 rad/s en sentido contrario al de las manecillas del reloj. ¿Cuál es la aceleración angular de la barra BC?

Solución:

restart; with(VectorCalculus)

NULL

NULL

m := 2

L := 1

theta := (1/4)*Pi

a[G] = x*alpha[BC]*r[G/B]-omega[BC]^2*r[G/B]+a[B]NULL

NULL

a[B] = x*alpha[AB]*r[B/A]-omega[AB]^2*r[B/A]+a[A]

NULL

aA := `<,>`(0, 0, 0)

`&alpha;AB` := `<,>`(0, 0, 0)

rBrA := `<,>`(1, 0, 0)

`&omega;AB` := `<,>`(0, 0, 4)

aB := aA+`&x`(`&alpha;AB`, rBrA)-4^2*rBrA

Vector[column](%id = 4411990810)

(1)

`&alpha;BC` := `<,>`(0, 0, `&alpha;bc`)

rGrB := `<,>`(.5*cos((1/4)*Pi), -.5*sin((1/4)*Pi), 0)

aG := evalf(aB+`&x`(`&alpha;BC`, rGrB)-6^2*rGrB, 5)

Vector[column](%id = 4412052178)

(2)

usando "(&sum;)M[G]=r[BC] x F[xy]"

rBC := `<,>`(.5*cos((1/4)*Pi), -.5*sin((1/4)*Pi), 0)

Fxy := `<,>`(Fx, -Fy, 0)

NULL

`&x`(rBC, Fxy) = (1/12*2)*1^2*`&alpha;bc`

(.2500000000*sqrt(2)*(-.70710*`&alpha;bc`-25.456)+(.2500000000*(57.456-.70710*`&alpha;bc`))*sqrt(2))*e[z] = (1/6)*`&alpha;bc`

(3)

 

"(&sum;)Fx:-Fx=m*ax"           y             "(&sum;)Fy:Fy=m*ay"

ax := -28.728+.35355*`&alpha;bc`

-28.728+.35355*`&alpha;bc`

(4)

ay := .35355*`&alpha;bc`+12.728

.35355*`&alpha;bc`+12.728

(5)

Fx := -2*ax

57.456-.70710*`&alpha;bc`

(6)

Fy := 2*ay

.70710*`&alpha;bc`+25.456

(7)

`&x`(rBC, Fxy) = (1/12*2)*1^2*`&alpha;bc`

(.2500000000*sqrt(2)*(-.70710*`&alpha;bc`-25.456)+(.2500000000*(57.456-.70710*`&alpha;bc`))*sqrt(2))*e[z] = (1/6)*`&alpha;bc`

(8)

.2500000000*sqrt(2)*(-.70710*`&alpha;bc`-25.456)+(.2500000000*(57.456-.70710*`&alpha;bc`))*sqrt(2) = (1/6)*`&alpha;bc`

.2500000000*2^(1/2)*(-.70710*`&alpha;bc`-25.456)+(14.36400000-.1767750000*`&alpha;bc`)*2^(1/2) = (1/6)*`&alpha;bc`

(9)

"(->)"

[[`&alpha;bc` = 16.97068481]]

(10)

NULL

 

Download ejercicio4.mw

A heart shape in 3d:

 

 

The code of the animation:

A := plots[animate](plot3d, [[16*sin(t)^3*cos(s), 16*sin(t)^3*sin(s), 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)], t = 0 .. u, s = 0 .. 2*Pi, color = red, style = surface, axes = none], u = 0 .. Pi, frames = 100):

B := plots[animate](plot3d, [[16*sin(t)^3*cos(s), 16*sin(t)^3*sin(s), 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)], t = u .. Pi, s = 0 .. 2*Pi, color = "LightBlue", style = surface, axes = none], u = 0 .. Pi, frames = 100):

plots[display](A, B);

 

Edited. The direction of painting changed.

 

The precise definition is that the distance between any two points of the rigid body remains constant. Although any body is deformed to move, if the deformation is small movement can be approximated by modeling it as a rigid body. Now let's see how Maple is part of the solution.

Cinematica_plana_de_cuerpos_rigidos.mw

(in spanish)

Atte.

Lenin Araujo C.

 

 

 

First 32 33 34 35 36 37 38 Last Page 34 of 59