Ronan

1262 Reputation

14 Badges

12 years, 267 days
East Grinstead, United Kingdom

MaplePrimes Activity


These are replies submitted by Ronan

@tomleslie This is a very detailed answer.  Good to know about [ ]. Solve can be a real pain at times with that.

 I don't have a programming background and am self-taught (with a lot of help from here) on Maple. That is why I use the 2D input. I see one's eye would get tuned to your style. It definitely makes the code readable. 

@Carl Love Ok. Good advice, that could cause some real problems. I guessed what I was trying wouldn't be recommended. What would you do to store a series of values etc, generated in a loop? I am also a using the equations Pedal||i later.

@tomleslie  Thank you that works very well.
At several places, you have these brackets [ ]. What do they do?  How do you achieve the formatting of your code?

.

@Ramakrishnan   Sorry. I meant to remove that line. There is a procedure at the start called Trunc. It is normally stored in my package called RonanRoutines. I copied and pasted it into the doc so it should work for you. Am at work so will check tonight.

@Christian Wolinski  Sorry. I meant to remove that line. There is a procedure at the start called Trunc. It is normally stored in my package called RonanRoutines. I copied and pasted it into the doc so it should work for you.

@Christian Wolinski Thank you. Very workable. I would love to give you best answer, thumbs up. They are not available.

@Joe Riel That is nice proc and a big step towards the end goal. At this point, I am going to start a new question on reducing the equations as this one was primarily about plotting.

@Joe Riel Thank you. I have the same problem. I can't figure out how to get Maple to reduce (x^2 + y^2 -1)^2 to  x^2 + y^2 -1. I am trying to find a way to do this automatically. Do you have any ideas on how to?  It could be for example  (x^2 + y^2 -1)^6.  I just picked the circle equation as a representative example.

Another good example is; because it has no constant term.

(-27*x^2*y^2-27*y^4+4*x^3)^2

 

Christian Wolinski Very nice and powerful. I was just going to post a similar question. I have a couple of questions and a problem.

The code doesn't seem to need Y or am I missing something?

k doesn't match my variable x but it works with k?

I found a situation where it returns a squared version of the desired answer. Is there a way around this? 
 

restart

rtr := sqrt(54*x+6*sqrt(81*x^2-48*A+48*x))*(9*x+sqrt(81*x^2-48*A+48*x)-18*A)/(243*x+27*sqrt(81*x^2-48*A+48*x)+72)

(54*x+6*(81*x^2-48*A+48*x)^(1/2))^(1/2)*(9*x+(81*x^2-48*A+48*x)^(1/2)-18*A)/(243*x+27*(81*x^2-48*A+48*x)^(1/2)+72)

(1)

eq := y = rtr

y = (54*x+6*(81*x^2-48*A+48*x)^(1/2))^(1/2)*(9*x+(81*x^2-48*A+48*x)^(1/2)-18*A)/(243*x+27*(81*x^2-48*A+48*x)^(1/2)+72)

(2)

NULL

collect((`@`(evala, Norm))((lhs-rhs)(eq)), Y, proc (E) convert(E, parfrac, k, {I, sqrt(5)}); map(radnormal, %) end proc)

-A*x*y^2+x^2*y^2+y^4+(4/27)*A^3-(4/9)*A^2*x+(4/9)*A*x^2-(4/27)*x^3

(3)

"(=)"

-A*x*y^2+x^2*y^2+y^4+(4/27)*A^3-(4/9)*A^2*x+(4/9)*A*x^2-(4/27)*x^3

(4)

NULL

eq1 := y = simplify(rtr)

y = (54*x+6*(81*x^2-48*A+48*x)^(1/2))^(1/2)*(9*x+(81*x^2-48*A+48*x)^(1/2)-18*A)/(243*x+27*(81*x^2-48*A+48*x)^(1/2)+72)

(5)

Works without Y

collect((`@`(evala, Norm))((lhs-rhs)(eq1)), proc (E) convert(E, parfrac, k, {I, sqrt(5)}); map(radnormal, %) end proc)

-A*x*y^2+x^2*y^2+y^4+(4/27)*A^3-(4/9)*A^2*x+(4/9)*A*x^2-(4/27)*x^3

(6)

NULL

A := 0

0

(7)

eq2 := y = rtr

y = (54*x+6*(81*x^2+48*x)^(1/2))^(1/2)*(9*x+(81*x^2+48*x)^(1/2))/(243*x+27*(81*x^2+48*x)^(1/2)+72)

(8)

collect((`@`(evala, Norm))((lhs-rhs)(eq2)), Y, proc (E) convert(E, parfrac, k, {I, sqrt(5)}); map(radnormal, %) end proc)

x^2*y^2+y^4-(4/27)*x^3

(9)

This next one leaves the equation  squared    

eq3 := y = simplify(rtr)

y = (54*x+6*3^(1/2)*(27*x^2+16*x)^(1/2))^(1/2)*(3^(1/2)*(27*x^2+16*x)^(1/2)+9*x)/(27*3^(1/2)*(27*x^2+16*x)^(1/2)+243*x+72)

(10)

collect((`@`(evala, Norm))((lhs-rhs)(eq3)), Y, proc (E) convert(E, parfrac, k, {I, sqrt(5)}); map(radnormal, %) end proc)

(1/729)*(-27*x^2*y^2-27*y^4+4*x^3)^2

(11)

expand doesn't fix the problem.

eq4 := expand(eq3)

y = (54*x+6*3^(1/2)*(27*x^2+16*x)^(1/2))^(1/2)*3^(1/2)*(27*x^2+16*x)^(1/2)/(27*3^(1/2)*(27*x^2+16*x)^(1/2)+243*x+72)+9*(54*x+6*3^(1/2)*(27*x^2+16*x)^(1/2))^(1/2)*x/(27*3^(1/2)*(27*x^2+16*x)^(1/2)+243*x+72)

(12)

collect((`@`(evala, Norm))((lhs-rhs)(eq4)), Y, proc (E) convert(E, parfrac, k, {I, sqrt(5)}); map(radnormal, %) end proc)

(1/729)*(-27*x^2*y^2-27*y^4+4*x^3)^2

(13)

NULL


 

Download sometimes_not_full_reduction.mw

@acer That is great. So useful. Is there a way to extend the functionality to handle for example trig functions? I multiplied one side by sin(x) and the other by tan(x).

fact := proc (expr::equation) options operator, arrow; frontend(gcd, [numer(lhs(expr)), numer(rhs(expr))])/frontend(gcd, [denom(lhs(expr)), denom(rhs(expr))]) end proc;
 eq1 := F*R = (1/2)*M*R^2*(a/R); eq1/fact(eq1); 
eq2 := (F+G)*R*sin(x)/sqrt(W-1) = (1/2)*M*R^2*tan(x)*(a/(R*sqrt(W-1)));
 fact(eq2); eq2/fact(eq2)

(F+G)*sin(x) = (1/2)*M*tan(x)*a

 

@Carl Love I found that line of code here on Maple Primes as a stand alone way to truncate an equation.

map(select, proc (q) options operator, arrow; evalb(degree(q, b) <= odr) end proc, a)

I put it inside the  procedure. 

I see that yours works alone too.

select(proc (q) options operator, arrow; evalb(degree(q, [x, y]) <= 2) end proc, E2)

 

Thank you,

Both answers are execellent.

convert(eq, Sum, method = rational, include = powers)    @Kitonum That is some nice disassembly of the function in Addition 2. 

In Addition 1 I found using the inert form Sum and then setting u=v gives the correct evaluation of the limit.

I was originally trying to convert that expression automaticially to the sum for an abrtitary m. An example of something similar is  (a^n*b^m-a^m*b^n)/(a-b) which assuming n>m can be represented as a^m*b^m*(a^(n-m)-b^(n-m))/(a-b) but outside of actual numbers I can't get Maple to factor to that. That then evaluates to a^m*b^m*(Sum(u^(n-m-1-i)*v^i, i = 0 .. n-m-1)) .

These functions are rather elementry and I am surprised Maple doesn't seem handle this. 

In the original document I attached, I notice something odd with

convert(eq, Sum, method = rational, include = powers)

(Sum((1-v)^_k1*binomial(-m+_k1-1, _k1), _k1 = 0 .. m))*(Sum((-1)^_k1*(-1+u-v)^_k1, _k1 = 0 .. infinity))The second sum is from 0 to infinity. How could that be? 
Edit:- How do you do those nice grey sections where you display your code? 

@Kitonum  I like that. I haven't used 'limit' before. Will pay more attention to it in future. I am still interested in how to make Maple produce the sum. 

@tomleslie Yes I understand your point. In reality the matrix is being generated row by row and checked for the condition of M[i,1]<>M[1,1]. Does not necessarily happen though solimit loop to some upper value.

 or else it keeps running.

 

First 19 20 21 22 23 24 25 Last Page 21 of 30