GenerateSimilar - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


RandomTools

  

GenerateSimilar

  

create a random expression similar to the one given

 

Calling Sequence

Parameters

Description

Examples

Compatibility

Calling Sequence

GenerateSimilar( expr )

Parameters

expr

-

integer, float, polynomial, or general expression

opts

-

(optional) equation of the form repeat = n where n is a positive integer

Description

• 

The GenerateSimilar command produces a new expression that is similar to the given expression expr. The structure and variables in the original expression are preserved, but new constants and coefficients replace the initial ones. The random floating-point numbers and integers in the new expression are the same magnitude as in the original.

• 

The optional argument, repeat = n can be used to generate a list of n similar expressions, all based on the original input.

• 

Trig functions are not always preserved: sin and cos can switch, sec and csc can switch, and tan and cot can switch. The inverse trig functions are paired and can switch in the same way.

• 

Inputting a polynomial that can be factored and has integer roots returns a polynomial of the same order that can be factored and has integer roots.

• 

If a polynomial is input without integer roots then a polynomial up to the same degree as the input polynomial with random coefficients up to the same order of magnitude as the largest integer in the input expression is returned.

• 

Numerators and denominators of input rational expressions are replaced in the same way as polynomials with the additional feature that if the numerator and denominator have a common root then the returned rational expression also has a shared root in its numerator and denominator.

• 

If a singular square matrix is input then a singular square matrix is output. Inputting upper triangular, lower triangular, diagonal, symmetric, hermitian, or antisymmetric matrices returns the same type. Otherwise the elements of the output matrix are generated individually from each element of the input matrix.

• 

Rational and integer exponents of functions or expressions (other than exponential functions) are preserved.

• 

If an integral is passed into the function then the resultant integral will be solvable using the same integration technique (u substitution, partial fractions, trig substitution, integration by parts).

• 

If an equation is passed into GenerateSimilar then a similar equation is output: radical equations produce radical equations, polynomial equations produce polynomial equations, logarithmic equations produce logarithmic equations, and exponential equations produce exponential equations.

• 

Sums over values of binomial or poisson probability distributions produce sums over values of binomial or poisson probability distributions respectively.

• 

Expectation value of a function over a binomial or poisson probability distribution returns an expectation value of a similar function over a binomial or poisson probability distribution respectively.

• 

Integrals over values of exponential or gaussian probability distributions return integrals over values of exponential or gaussian probability distributions respectively.

• 

Expectation value of a function over an exponential or gaussian probability distribution returns an expectation value of a similar function over an exponential or gaussian probability distribution respectively.

• 

Parametrizations of circles, ellipses and cycloids return parametrizations of circles, ellipses and cycloids.

• 

Differential equations should not be input into GenerateSimilar; for differential equations use GenerateSimilarODE.   

Examples

> 

with⁡RandomTools:

> 

GenerateSimilar⁡x

4⁢x+2

(1)

The cube on the sin function is preserved.

> 

GenerateSimilar⁡sin⁡x3+3⁢exp⁡x2

−5⁢cos⁡x−73−5⁢ⅇ−4⁢x2+3⁢x

(2)

Inputting a factorable polynomial returns a factorable polynomial..

> 

factor⁡r2+r−6

r+3⁢r−2

(3)
> 

poly1≔GenerateSimilar⁡r2+r−6

poly1≔r2−6⁢r−16

(4)
> 

factor⁡poly1

r+2⁢r−8

(5)

A polynomial without integer roots returns a polynomial with random coefficients

> 

solve⁡r2−2⁢r+2=0

1+I,1−I

(6)
> 

GenerateSimilar⁡r2−2⁢r+2

r2+r+2

(7)

Factorable numerators and denominators remain factorable and if a factor is shared between the numerator and denominator then the resultant rational function will share a factor between numerator and denominator.

> 

factor⁡y2−1y−3

y−1⁢y+1y−3

(8)
> 

rational1≔GenerateSimilar⁡y2−1y−3

rational1≔y−3⁢−y+1−y+6

(9)
> 

factor⁡rational1

y−3⁢y−1y−6

(10)
> 

factor⁡y2−1y+1

y−1

(11)
> 

rational2≔GenerateSimilar⁡y2−1y+1

rational2≔y−4⁢y+32⁢y+1

(12)
> 

factor⁡rational2

y−4⁢y+32⁢y+1

(13)

Singular matrices return singular matrices.

> 

with⁡LinearAlgebra:

> 

Determinant⁡Matrix⁡3,3,2,4,6,2,0,2,6,8,14

0

(14)
> 

matrix1≔GenerateSimilar⁡Matrix⁡3,3,2,4,6,2,0,2,6,8,14

matrix1≔−2−6−83−21−6−8−14

(15)
> 

Determinant⁡matrix1

0

(16)

Diagonal matrices return diagonal matrices.

> 

matrix2≔Matrix⁡3,3,1,0,0,0,−2,0,0,0,7

matrix2≔1000−20007

(17)
> 

GenerateSimilar⁡matrix2

9000−900010

(18)

Upper triangular matrices return upper triangular matrices.

> 

matrix3≔Matrix⁡3,3,2,−4,3,0,5,7,0,0,−6

matrix3≔2−4305700−6

(19)
> 

GenerateSimilar⁡matrix3

868010800−2

(20)

Lower triangular matrices return lower triangular matrices.

> 

matrix4≔Matrix⁡3,3,3,0,0,−1,5,0,7,10,−3

matrix4≔300−150710−3

(21)
> 

GenerateSimilar⁡matrix4

60064019−2

(22)

Symmetric matrices return symmetric matrices.

> 

matrix5≔Matrix⁡3,3,1,−9,7,−9,π,3,7,3,2

matrix5≔1−97−9π3732

(23)
> 

GenerateSimilar⁡matrix5

4−84−85⁢π29494

(24)

Hermitian matrices return hermitian matrices.

> 

matrix6≔Matrix⁡3,3,2,−I,7+2⁢I,I,3,8−4⁢I,7−2⁢I,8+4⁢I,1

matrix6≔2−I7+2⁢II38−4⁢I7−2⁢I8+4⁢I1

(25)
> 

GenerateSimilar⁡matrix6

5−I3+2⁢II52−5⁢I3−2⁢I2+5⁢I6

(26)

Skew-symmetric matrices return skew-symmetric matrices.

> 

matrix7≔Matrix⁡3,3,0,1,−4,−1,0,7,4,−7,0

matrix7≔01−4−1074−70

(27)
> 

GenerateSimilar⁡matrix7

0−3630−3−630

(28)

If the matrix doesn't fall into one of the above categories GenerateSimilar is mapped to every element in the matrix

> 

matrix8≔Matrix⁡3,3,1,3,x,sin⁡x,−2,ln⁡x2,−6,3.1,−45

matrix8≔13xsin⁡x−2ln⁡x2−63.1−45

(29)
> 

GenerateSimilar⁡matrix8

746⁢x−106⁢cos⁡−8⁢x+6−97⁢ln⁡−2−x−79.7−78

(30)

Integration technique: u substitution.

> 

GenerateSimilar⁡%int⁡2⁢x+2⁢exp⁡x2+2⁢x+7,x

∫2⁢x+12⁢ⅇx2+12⁢x+47ⅆx

(31)

Integration technique: partial fractions.

> 

GenerateSimilar⁡%int⁡x+7x2−4,x

∫−12⁢x+11x−4⁢−x+6ⅆx

(32)

Integration technique: trig substitution.

> 

GenerateSimilar⁡%int⁡sqrt⁡x2+1,x

∫−8x2+1ⅆx

(33)
> 

GenerateSimilar⁡%int⁡x⁢sqrt⁡x4+1,x

∫−2⁢−x4+3⁢xⅆx

(34)
> 

GenerateSimilar⁡%int⁡sqrt⁡exp⁡2⁢x+1,x

∫1ⅇ2⁢x+1ⅆx

(35)

Integration technique: integration by parts.

> 

GenerateSimilar⁡%int⁡x⁢ln⁡x,x

∫2⁢x−3⁢ln⁡−x+3ⅆx

(36)
> 

GenerateSimilar⁡%int⁡2⁢x3−3⁢x2⁢ln⁡x−2,x

∫14⁢x3+63⁢x2⁢ln⁡−x−6ⅆx

(37)
> 

GenerateSimilar⁡%int⁡x⁢exp⁡x,x

∫800⁢x⁢ⅇ−2⁢xⅆx

(38)
> 

GenerateSimilar⁡%int⁡x⁢cos⁡x,x

∫−54⁢x⁢cos⁡2⁢xⅆx

(39)
> 

GenerateSimilar⁡%int⁡exp⁡x⁢cos⁡x,x

∫−252⁢ⅇ−2⁢x⁢sin⁡−3⁢xⅆx

(40)
> 

GenerateSimilar⁡%int⁡arccos⁡x,x

∫arcsin⁡−9⁢xⅆx

(41)

Integration resulting in an erf function will give back integration resulting in an erf function.

> 

simplify⁡%int⁡exp⁡−x2,x

∫ⅇ−x2ⅆx

(42)
> 

integral1≔GenerateSimilar⁡%int⁡exp⁡−x2,x

integral1≔∫ⅇ−3⁢x2−1ⅆx

(43)
> 

simplify⁡integral1

∫ⅇ−3⁢x2−1ⅆx

(44)

Integration resulting in an Si function will give back integration resulting in an Si function.

> 

simplify⁡%int⁡sin⁡xx,x

∫sin⁡xxⅆx

(45)
> 

integral2≔GenerateSimilar⁡%int⁡sin⁡xx,x

integral2≔∫7⁢sin⁡6⁢x60⁢xⅆx

(46)
> 

simplify⁡integral2

7⁢∫sin⁡6⁢xxⅆx60

(47)

Integration that results in an arctan function will give back integration resulting in an arctan function.

> 

simplify⁡%int⁡1x2+1,x

∫1x2+1ⅆx

(48)
> 

integral3≔GenerateSimilar⁡%int⁡1x2+1,x

integral3≔∫−10x2+1ⅆx

(49)
> 

simplify⁡integral3

−10⁢∫1x2+1ⅆx

(50)

A double integral will produce a double integral;

> 

integral14≔%int⁡%int⁡sin⁡x⁢cos⁡y,y=0..π,x=π2..π

integral14≔∫π2π∫0πsin⁡x⁢cos⁡yⅆyⅆx

(51)
> 

GenerateSimilar⁡integral14

∫π237⁢π36∫053⁢π54108⁢sin⁡−9⁢x⁢cos⁡−10⁢yⅆyⅆx

(52)

A polynomial equation will produce a polynomial equation. If the input equation has integer roots the output equation will have integer roots.

> 

equation1≔x2+x−9=2⁢x−3

equation1≔x2+x−9=2⁢x−3

(53)
> 

solve⁡equation1

3,−2

(54)
> 

newEquation1≔GenerateSimilar⁡equation1

newEquation1≔x2+19⁢x+68=3⁢x+5

(55)
> 

solve⁡newEquation1

−7,−9

(56)

Radical equations with rational solutions will produce radical equations with rational solutions or no solutions.

> 

equation2≔sqrt⁡3⁢x2+10⁢x−5=0

equation2≔3⁢x2+10⁢x−5=0

(57)
> 

solve⁡equation2

53,−5

(58)
> 

newEquation2≔GenerateSimilar⁡equation2

newEquation2≔9=7⁢x2+20⁢x+93

(59)
> 

solve⁡newEquation2

−67,−2

(60)
> 

equation3≔sqrt⁡2⁢x2−x+3sqrt⁡x2−2⁢x+9=1

equation3≔2⁢x2−x+3x2−2⁢x+9=1

(61)
> 

solve⁡equation3

2,−3

(62)
> 

newEquation3≔GenerateSimilar⁡equation3

newEquation3≔2⁢x2+2x2+x+8=1

(63)
> 

solve⁡newEquation3

3,−2

(64)
> 

equation4≔sqrt⁡2⁢x2−x−3=sqrt⁡x2−2⁢x+9

equation4≔2⁢x2−x−3=x2−2⁢x+9

(65)
> 

solve⁡equation4

3,−4

(66)
> 

newEquation4≔GenerateSimilar⁡equation4

newEquation4≔−x2−6⁢x+4=−2⁢x2−10⁢x+1

(67)
> 

solve⁡newEquation4

−1,−3

(68)
> 

equation5≔2⁢x=sqrt⁡x+3

equation5≔2⁢x=x+3

(69)
> 

solve⁡equation5

1

(70)
> 

newEquation5≔GenerateSimilar⁡equation5

newEquation5≔x=−69⁢x2+460⁢x+210

(71)
> 

solve⁡newEquation5

7

(72)
> 

equation6≔2⁢xsqrt⁡x+3=1

equation6≔2⁢xx+3=1

(73)
> 

solve⁡equation6

1

(74)
> 

newEquation6≔GenerateSimilar⁡equation6

newEquation6≔5⁢x13⁢x2−68⁢x+112=1

(75)
> 

solve⁡newEquation6

43

(76)
> 

equation7≔12⁢x=1sqrt⁡x+3

equation7≔12⁢x=1x+3

(77)
> 

solve⁡equation7

1

(78)
> 

newEquation7≔GenerateSimilar⁡equation7

newEquation7≔110⁢x=188⁢x2−94⁢x+126

(79)
> 

solve⁡newEquation7

76

(80)
> 

equation8≔1+sqrt⁡1−x=sqrt⁡2⁢x+4

equation8≔1+1−x=2⁢x+4

(81)
> 

solve⁡equation8

0

(82)
> 

newEquation8≔GenerateSimilar⁡equation8

newEquation8≔−1+8⁢x=1+4⁢x−1

(83)
> 

solve⁡newEquation8

54,14

(84)

Trig equations in forms that can be solved without a calculator produce trig equations that can be solved without a calculator.

> 

equation9≔cos⁡x2+cos⁡x=0

equation9≔cos⁡x2+cos⁡x=0

(85)
> 

solve⁡equation9

π,π2

(86)
> 

newEquation9≔GenerateSimilar⁡equation9

newEquation9≔3−cos⁡7⁢x+42−cos⁡7⁢x+4⁢32=3

(87)
> 

solve⁡newEquation9

−47+5⁢π42,−47+π14

(88)
> 

equation10≔cos⁡x2+cos⁡x=sin⁡x2

equation10≔cos⁡x2+cos⁡x=sin⁡x2

(89)
> 

solve⁡equation10

π,π3

(90)
> 

newEquation10≔GenerateSimilar⁡equation10

newEquation10≔5⁢cos⁡6⁢x−22−3=−sin⁡6⁢x−22

(91)
> 

solve⁡newEquation10

13+π24,13+π8

(92)
> 

equation11≔cos⁡x+sin⁡x=0

equation11≔cos⁡x+sin⁡x=0

(93)
> 

solve⁡equation11

−π4

(94)
> 

newEquation11≔GenerateSimilar⁡equation11

newEquation11≔cos⁡x+6=sin⁡x+6

(95)
> 

solve⁡newEquation11

−6+π4

(96)

Logarithmic equations that are easily solvable without a calculator return logarithmic equations that can be easily solved without a calculator.

> 

equation12≔ln⁡x−1+ln⁡2⁢x−1=2⁢ln⁡x+1

equation12≔ln⁡x−1+ln⁡2⁢x−1=2⁢ln⁡x+1

(97)
> 

solve⁡equation12

5

(98)
> 

newEquation12≔GenerateSimilar⁡equation12

newEquation12≔ln⁡2⁢x2+7⁢x+16=2⁢ln⁡x+4

(99)
> 

solve⁡newEquation12

0,1

(100)
> 

equation13≔%log3⁡x−1+%log3⁡2⁢x−1=2⁢%log3⁡x+1

equation13≔log3⁡x−1+log3⁡2⁢x−1=2⁢log3⁡x+1

(101)
> 

solve⁡InertForm:-Value⁡equation13

5

(102)
> 

newEquation≔GenerateSimilar⁡equation13

newEquation≔log4⁡−13⁢x+4=2⁢log4⁡x−2

(103)
> 

solve⁡newEquation13

0

(104)

Exponential equations that can be easily solved without a calculator return exponential equations that can be easily solved without a calculator.

> 

equation14≔exp⁡cos⁡x2=exp⁡−cos⁡x⁢exp⁡sin⁡x2

equation14≔ⅇcos⁡x2=ⅇ−cos⁡x⁢ⅇsin⁡x2

(105)
> 

solve⁡equation14

π,π3,−π3

(106)
> 

newEquation14≔GenerateSimilar⁡equation14

newEquation14≔ⅇ−2⁢cos⁡2⁢x+32−2⁢sin⁡2⁢x+32−4⁢cos⁡2⁢x+3−1=ⅇ2⁢cos⁡2⁢x+3+2⁢ⅇ2⁢cos⁡2⁢x+32−3⁢cos⁡2⁢x+3−4

(107)
> 

solve⁡newEquation14

−32+π2,−32+π3

(108)

Complex polynomial equations with roots that have integer real and imaginary parts produce complex polynomial equations with integer real and imaginary roots.

> 

equation15≔z2+−9+4⁢I⁢z+4−18⁢I=0

equation15≔z2+−9+4⁢I⁢z+4−18⁢I=0

(109)
> 

solve⁡equation15

8−2⁢I,1−2⁢I

(110)
> 

newEquation15≔GenerateSimilar⁡equation15

newEquation15≔−z2+9⁢z−I⁢z+8+21⁢I=0

(111)
> 

solve⁡newEquation15

−1−2⁢I,10+I

(112)

Absolute value equations produce absolute value equations.

> 

equation16≔abs⁡x−3=abs⁡5−3⁢x

equation16≔x−3=3⁢x−5

(113)
> 

solve⁡equation16

2,1

(114)
> 

newEquation16≔GenerateSimilar⁡equation16

newEquation16≔3⁢x=x+4

(115)
> 

solve⁡newEquation16

−1,2

(116)
> 

equation17≔abs⁡x2+2⁢x=15

equation17≔x2+2⁢x=15

(117)
> 

solve⁡equation17

−5,3

(118)
> 

newEquation17≔GenerateSimilar⁡equation17

newEquation17≔x2−14⁢x+33=12

(119)
> 

solve⁡newEquation17

7−2⁢7,7+2⁢7,5,9

(120)

Equations of circles return equations of circles.

> 

equation18≔x−32+y+42=16

equation18≔x−32+y+42=16

(121)
> 

plots:-implicitplot⁡equation18,x=−20..20,y=−20..20

> 

newEquation18≔GenerateSimilar⁡equation18

newEquation18≔x−92+y+102=25

(122)
> 

plots:-implicitplot⁡newEquation18,x=−20..20,y=−20..20

Equations of ellipses return equations of ellipses.

> 

equation19≔x−224+y+329=1

equation19≔x−224+y+329=1

(123)
> 

plots:-implicitplot⁡equation19,x=−20..20,y=−20..20

> 

newEquation19≔GenerateSimilar⁡equation19

newEquation19≔x−32100+y+1249=1

(124)
> 

plots:-implicitplot⁡newEquation19,x=−20..20,y=−20..20

Equations of hyperbolas return equations of hyperbolas.

> 

equation20≔x−224−y+5216=1

equation20≔x−224−y+5216=1

(125)
> 

plots:-implicitplot⁡equation20,x=−20..20,y=−20..20

> 

newEquation20≔GenerateSimilar⁡equation20

newEquation20≔x−102100−y+8281=1

(126)
> 

plots:-implicitplot⁡newEquation20,x=−20..20,y=−20..20

Probability of measuring less than a certain amount of successes from a binomial distribution.

> 

GenerateSimilar⁡%sum⁡8!8−x!⁢x!⁢14x⁢348−x,x=0..4

∑x=07⁡5040⁢310x⁢7107−x7−x!⁢x!

(127)

Probability of measuring more than a certain amount of successes from a binomial distribution.

> 

GenerateSimilar⁡%sum⁡8!8−x!⁢x!⁢14x⁢348−x,x=4..8

∑x=24⁡24⁢67x⁢174−x4−x!⁢x!

(128)

Expectation value of a binomial distribution.

> 

GenerateSimilar⁡%sum⁡x⁢8!8−x!⁢x!⁢14x⁢348−x,x=0..8

∑x=05⁡120⁢25x⁢355−x⁢x5−x!⁢x!

(129)

Probability of measuring an event of a poisson distribution within a certain amount of time.

> 

GenerateSimilar⁡%sum⁡exp⁡−5⁢5xx!,x=0..10

∑x=058⁡ⅇ−4⁢4xx!

(130)

Probability of not measuring an event of a poisson distribution within a certain amount of time.

> 

GenerateSimilar⁡%sum⁡exp⁡−5⁢5xx!,x=10..∞

∑x=69∞⁡ⅇ−4⁢4xx!

(131)

Expectation value of a poisson distribution.

> 

GenerateSimilar⁡%sum⁡x⁢exp⁡−5⁢5xx!,x=0..∞

∑x=0∞⁡ⅇ−6⁢6x⁢xx!

(132)

Probability of measuring the time between poisson events to be less than a certain value.

> 

GenerateSimilar⁡%int⁡5⁢exp⁡−5⁢x,x=0..10

∫0374⁢ⅇ−4⁢xⅆx

(133)

Probability of measuring the time between poisson events to be more than a certain value.

> 

GenerateSimilar⁡%int⁡5⁢exp⁡−5⁢x,x=10..∞

∫52∞8⁢ⅇ−8⁢xⅆx

(134)

Expectation value of an exponential distribution.

> 

GenerateSimilar⁡%int⁡x⋅5⁢exp⁡−5⁢x,x=0..∞

∫0∞6⁢ⅇ−6⁢x⁢xⅆx

(135)

Probability of measuring less than a certain value for a gaussian distribution.

> 

GenerateSimilar⁡%int⁡1%sqrt⁡2⁢π⋅2⁢exp⁡−x−428,x=−∞..0

∫−∞0ⅇ−x−22987⁢2⁢πⅆx

(136)

Probability of measuring more than a certain value for a gaussian distribution.

> 

GenerateSimilar⁡%int⁡1%sqrt⁡2⁢π⋅2⁢exp⁡−x−428,x=0..∞

∫0∞ⅇ−x−6220010⁢2⁢πⅆx

(137)

Expectation value of a gaussian distribution.

> 

GenerateSimilar⁡%int⁡x%sqrt⁡2⁢π⋅2⁢exp⁡−x−428,x=−∞..∞

∫−∞∞ⅇ−x−6232⁢x4⁢2⁢πⅆx

(138)

Parametrization of a circle returns a parametrization of a circle.

> 

plot⁡2⁢cos⁡t−4,2⁢sin⁡t+1,t=0..2⁢π

> 

newCircle≔GenerateSimilar⁡2⁢cos⁡t−4,2⁢sin⁡t+1

newCircle≔cos⁡9⁢t−8−sin⁡9⁢t+7

(139)
> 

plot⁡newCircle1,newCircle2,t=0..2⁢π

Parametrization of an ellipse returns a parametrization of an ellipse.

> 

plot⁡2⁢cos⁡t−4,3⁢sin⁡t+1,t=0..2⁢π

> 

newEllipse≔GenerateSimilar⁡2⁢cos⁡t−4,3⁢sin⁡t+1

newEllipse≔7⁢cos⁡5⁢t−64⁢sin⁡5⁢t+8

(140)
> 

plot⁡newEllipse1,newEllipse2,t=0..2⁢π

Parametrization of a cycloid returns a parametrization of a cycloid.

> 

plot⁡10⁢t−5⁢sin⁡t,5−5⁢cos⁡t,t=0..4⁢π

> 

newCycloid≔GenerateSimilar⁡5⁢t−5⁢sin⁡t,5−5⁢cos⁡t

newCycloid≔−27⁢t+3⁢sin⁡9⁢t3−3⁢cos⁡9⁢t

(141)
> 

plot⁡newCycloid1,newCycloid2,t=0..π

Use the repeat option to generate 5 random integers similar to the input 4:

> 

RandomTools:-GenerateSimilar⁡4,repeat=5

8,8,3,9,2

(142)

Compatibility

• 

The RandomTools[GenerateSimilar] command was introduced in Maple 2020.

• 

For more information on Maple 2020 changes, see Updates in Maple 2020.

• 

The RandomTools[GenerateSimilar] command was updated in Maple 2025.

• 

The repeat option was introduced in Maple 2025.

• 

For more information on Maple 2025 changes, see Updates in Maple 2025.

See Also

HowDoI,WorkWithRandomGenerators

InertForm

rand

RandomTools

RandomTools[Generate]

RandomTools[GenerateSimilarODE]

randpoly