sand15

922 Reputation

15 Badges

10 years, 287 days

MaplePrimes Activity


These are answers submitted by sand15

lhs(Eq1) > 0 in the range you provide.

Beware_of_the_ranges.mw


The first problem you face is that LaTeX is a sotware system for typesetting documents and not a computer algebra system.
Maple  syntax relies upon maths while LaTeX syntax is most permissive: this means that if any Maple formula can be translated into a syntactically correct LaTeX expression the converse is not true.
For instance this LaTeX expression (where the "/" sign means, in the context of the paper, "conditionnally to") has no Maple meanings:


Another example taken at random from Goodle image.

So, assuming the LaTeX expression has a Maple sense, which would be the case if the author did some Maple work, converted some extression into LaTeX and imported it into its LaTeX development tool (Overleaf for instance), one may think that the LaTeX formula can be translated in Maple.


The LaTeX case

I assume below that you have the LaTeX source not only its compiled rendering.

The a priori best way:
(1) As you have Maple 2025 you must dispose of the MathML:-FromLaTeX function, see HERE.
As I am not that lucky I can't test it to tell you about its possible limitations.


(2) There exists some online translators (AI Chat for instance) but you must extremely very careful on the translation they provide (specifically if your expressions involve vectors, matrices, derivatives, integral).
To be confident in the online translator you could be tempted to use procced this way

  1. In Maple:
    1. write some expression expr
    2. Convert it to LaTeX.
    3. Copy the output.
  2. In the online translator:
    1. Paste the LaTeX expression.
    2. Ask for its Maple translation
    3. Copy it
  3. In Maple:
    1. Paste the experssion the translator provided
    2. compare to the original maple expression expr.

 

(3)  An old (2016) Mapleprimes question (note that SnuggleTeX no longer exists).

Nevertheless, even if you can use FromLaTeX, point (2) might be usefull depending on FromLaTeX limitations (if any).


The "no LaTeX source code" case

Without LaTeX source (pdf article for instance) a copy-paste of the expression into a Maple worksheet it possible but it is very likely that you will have to correct it.
For instance the illustration I provided at the top of this reply, copied-pasted in maple document mode gives this





The "hand-written" case

Is obviously even more complex than this latter because a first step to convert a handwritten note into LaTeX seems mandatory (see for instance NotesToLaTeX, MathWrite, or others)



In My Opinion,

Even i this work can seem tedious to you, I believe that converting handwritten notes or LaTeX compiled outputs (not a source code) into Maple expressions is much safer if you do it carefully without looking forthe help of some automatic translator.



Last point:

If you are interesting in writting something like LHS = RHS1 = RHS2 = ....RHSN in Maple, just browse the Mapleprimes site: there has been a recent question about whose @acer replied.

You should upload your worksheet so that we can verify there is no spurious character in the expression you want to expand.

restart

kernelopts(version)

`Maple 2015.2, APPLE UNIVERSAL OSX, Dec 20 2015, Build ID 1097895`

(1)

f := (m-1/2)^4 - (5/2+12*c)*(m-1/2)^2 + 1/4*(9/4+12*c)

(m-1/2)^4-(5/2+12*c)*(m-1/2)^2+9/16+3*c

(2)

fe := expand(f);

m^4-12*c*m^2-2*m^3+12*c*m-m^2+2*m

(3)

# check:

simplify(f-fe);

0

(4)

# In detail:

g := (m-1/2)^4 - (5/2+12*c)*(m-1/2)^2 + ``(1/4)*(9/4+12*c);
print():


opg  := [op(g)]:
eopg := map(expand, opg):
print~(`≡`~(opg, eopg)):

(m-1/2)^4-(5/2+12*c)*(m-1/2)^2+``(1/4)*(9/4+12*c)

 

 

`≡`((m-1/2)^4, m^4-2*m^3+(3/2)*m^2-(1/2)*m+1/16)

 

`≡`(-(5/2+12*c)*(m-1/2)^2, -(5/2)*m^2+(5/2)*m-5/8-12*c*m^2+12*c*m-3*c)

 

`≡`(``(1/4)*(9/4+12*c), 9/16+3*c)

(5)

`≡`~(g, add(eopg));

`≡`((m-1/2)^4-(5/2+12*c)*(m-1/2)^2+``(1/4)*(9/4+12*c), m^4-12*c*m^2-2*m^3+12*c*m-m^2+2*m)

(6)
 

 

Download expand.mw

The solution has a single branch if v__0 <> 0 and two branches instead.

branches.mw

I dont know if the recent Maple versions (I use Maple 2015) have something equivalent to solve/parametric for dsolve?
Something that could write

dsolve({ode, ic}, {v(x)}, 'parametric'='full', 'parameters'={v__0});

and would deliver all the branches depending on the value of v__0

You define f[i] as a function of two arguments p2 and pr but you use only one in the following command:

Cs := {seq(beta[i] = subs(pr = 0, f[i](pr)), i = 1 .. 2)};

Error, invalid input: f[1] uses a 2nd argument, pr, which is missing


Correct yourself the definition of Cs or f[i]'s before going further.

Have you ever considered that attaching an article might give the impression that you are asking the community to code and solve the equations it contains? Perhaps it is not surprising that no one then replies to you..

This put aside the error message is very clear: if a bvp problem is set over a compact subset of IR, let's say the interval [-1, +1], the the boundaries conditions have to be imposed at y=-1 and y=+1 and not aa some third point inside [-1, +1].
So your problem IS NOT a bvp problem.

This said there are essentially two ways to tackle it

  1. Solve independently two bvp problems:
    1. One on interval [-1, 0] with unfixed values at y=0
    2. One on interval [0, 1] with still unfixed calues at y=0... but the same of the previous problem
    3.  Connect the left and right solution in order that your "internal conditions at y=0" are fullfilled.
    4. To do this you will have to solve some minimization ptoblem.
       
  2. Solve a single bvp problem (the optionI choosed) over [-1, +1] with some bc unfixed and iterate over the solutions until your "internal conditions at y=0" are fullfilled.

The attached file explains you how to do this.

Last point: in OdeSys you have not given the parameter R some numeric value. So I arbitrarily choosed to take R=0.
If this choice does not suit yoy feel free to take another value.

The attached worksheet does not browse all the values of j as, for questions of time, I only considered j=1.
Here again it's up to you to complete the job if you agree with it.

symetry_paper_work_sand15.mw

Roughly speking you want to solve, with respect to 1 single indeterminate a__1233 polynomial equations in a__12 whose degrees range from 0 (!!!) to 3.
Are you seriously expecting to find a solution unless, maybe, the trivial one a__12 = 0?

Read this worksheet  help-parameter_sand15.mw

You will see that only 16 equations out of 29 (because 4 of the initial 33 equations simply do not contain a__12) have only in common the root a__12 = 0 and that the 13 remaining ones may have the same root provided the remaining parameters verify some relations.
If  by chance it happens to be the case, then the unique common root to all the 29 equations is a__12 = 0.

One you have understood what the attached file contains I advice you to reformulate what you want to achieve. Maybe fixing constraints on the remaining parameters or some other stuff.

The Warning, solutions may have been lost  comes from the fact that it is difficult for Maple to provide a general answer which depends on all the 7or 8 remaining parameters.

So the "solution" you expect is in fact an extremely complex piecewise structure, all the more complex to read that each clause and ppiece may have a lengthy expression.
In my opinion it is always a good idea in such a case to "synthetize" the expression you want to solve before really trying to solve it.
I suggest you this: Q_on_solve_sand15.mw


For two indeterminates named x and y:

 

restart
S := N -> ListTools:-Reverse([op(sort(add(seq(seq(x^i*y^j, j=0..N-i), i=0..N))))]):
R := S(2);
        [1, y, x, y^2 , x*y, x^2]

# EDITED:
assign( op([seq(p[i-1], i=1..nops(R))] =~ R) );


S(3); 

     [1, y, x, y^2 , x*y, x^2 , y^3 , x*y^2 , x^2*y, x^3 ]

 


For something more general you could use this  general_procedure.mw

Regional_plot_sand15.mw

Figure based on plots:-inequal:


Q_NEW_PLOT_sand15.mw

Plot 1 (for Plot 2 look inside the attached file)


Plot 1 (for plot 2 look inside the attached file)


Convolution is useful to build the PDF of the sum of two (or more) independent random variables but is of no help to compute the PDF of a function ( |.| for instance) of a random variable.

Furthermore, you write "..., but the "rules" of convolution, particularly setting the upper and lower boundaries of the integrals confuse me.".
This is very simple: as you are dealing with PDF of continuous random variables (so functions defined over R) the lower bound is minus infinity and the upper bound is plus infinity, that's all.
You can of course be more astute while integrating over the support of one of the two random variables, but I do not recommend you doing so: read Convolution_bounds.mw to see what mistakes you could do.
In fact, integrating over the smallest necessary range presents an interest only in numerical integration, but if you integrate exactly this trick has absolutely no utility.



Here is the solution in three steps.

restart


I tried to reduced to the minimum the use of Statistics built-in functions

with(Statistics):


U and V iid Uniform(0, 1)

Step 1: PDF(U-V)

Let us write nV = -V

__U  := RandomVariable(Uniform( 0, 1)):
__nV := RandomVariable(Uniform(-1, 0)):

phi[U]  := unapply(PDF(__U, z), z):
phi[nV] := unapply(PDF(__nV, z), z):
 

phi[U-V] := unapply( int(phi['U'](u)*phi['nV'](z-u), u=-infinity..+infinity), z)

proc (z) options operator, arrow; piecewise(z <= -1, 0, z <= 0, 1+z, z <= 1, 1-z, 1 < z, 0) end proc

(1)


Step 2: PDF(|U-V|)

# PDF(|U-V|) is easily obtained using CDF(U-V).
# You can use the built-in Probability function, or do elementary geometry.
#
# For instance: Prob(|U-V| < 0.7) = gray area = 1 - green areas

d := 0.7;
plots:-display(
  plot(phi[U-V](z), z=-1..1, color=blue, thickness=3)
  , plot(phi[U-V](z), z=-d..d, color=gray, filled=true)
  , plot(phi[U-V](z), z=-1..-d, color="Chartreuse", filled=true)
  , plot(phi[U-V](z), z=d..1, color="Chartreuse", filled=true)
  , scaling=constrained
)

.7

 

 

# The green area is

d := 'd':
green_area := 2 * ``((1-d)^2/2)

2*``((1/2)*(1-d)^2)

(2)

# So Prob(|U-V| < d) equals

`Prob(|U-V| < d)` = 1 - expand(green_area);

`Prob(|U-V| < d)` = 1-(1-d)^2

(3)

# Meaning the restriction of the PDF of |U-V| to 0 <= d <= 1 is

phi[`|U-V|`] := diff(rhs(%), d)

2-2*d

(4)

# The PDF of |U-V| then is

phi[`|U-V|`] := unapply(piecewise(d < 0, 0, d < 1, phi[`|U-V|`], 0), d)

proc (d) options operator, arrow; piecewise(d < 0, 0, d < 1, 2-2*d, 0) end proc

(5)


Let X and Y iid Uniform(0, 1)

Step 3: PDF( |U-V| + |X-Y| )

By convolution:

phi[`|U-V| + |X-Y|`] := unapply( simplify(int(phi[`|U-V|`](u)*phi[`|U-V|`](d-u), u=-infinity..+infinity)), d):

phi[`|U-V| + |X-Y|`](d)

piecewise(d <= 0, 0, d <= 1, (2/3)*d^3-4*d^2+4*d, d <= 2, -(2/3)*d^3+4*d^2+16/3-8*d, 2 < d, 0)

(6)

 

 

Download DensityFunction_sand15.mw


BTW: in Statistics the distance you use is named Manhattan distance or "Taxicab distance".

 


Answers to questions 1 and 2:

# Question 1:
# Option gridlines = true/false manages the presence/absence of gridlines
# More details in plot/axis help page

# Question 2: compare this
z := x*cos(y):
p := plots:-contourplot(z, x=0..1, y=0..Pi, filled=true):
plots:-display(p);

# to this
plots:-display(
  plottools:-transform((x, y) -> [y, x])(p)
)

Question3: LOOK HERE or THERE for instance, and more generally use the search engine of this site.


My explanation intuition

On today machines 1 hyperthreaded proc corresponds to 1 phyisical proc + 1 logical proc.
In Grid language this means 1 core = 1 physical node + 1 logical node, so setting 4 nodes means 2 cores (=2 proc)

BTW: there is a course about Grid package somewhere here (a serie of two posts I wasn't capable to put the finger on,  but I'm sure I read them years ago...)
 

1 2 3 4 5 6 7 Page 1 of 7