Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Hi!

I a have a question about factorizing real polynomials.

Suppose I have a real polynomial p(x) with integer coefficients. If the degree of p(x) is less than or equal to 4, we can factorize it into linear radical factors. On the other hand, if we require the factorization to be real, theoretically we can factorize it into linear and irreducible quadratic factors.

My question is, if the input p(x) is real polynomial with integer coefficients, is there any Maple function that can give me factorization output with real linear and irreducible quadratic factors, with radical coeffs?

For example, I tried q := 20*x^3+10*x^2+4*x+1, it has one real root and 2 complex roots. I want a factorization like q(x) = 20*(x-r1)*(a*x^2 + b*x + c), with r1, a, b, c, all real radicals.

I compared functions: factors(), solve(), sqrfree(), Splits(), and none of them give what I want.

factors(q) gives: 
[20, [[x^3+(1/2)*x^2+(1/5)*x+1/20, 1]]]

 

factors(q, real)  gives: 
[20., [[x+.3423840948583691316993036540027816871936619136844427977504078911, 1], [x^2+.1576159051416308683006963459972183128063380863155572022495921089*x+.1460348209828001458360112632660894203743660942160039146818509889, 1]]]

solve(q)   gives:
-(1/30)*(350+105*sqrt(15))^(1/3)+7/(6*(350+105*sqrt(15))^(1/3))-1/6, (1/60)*(350+105*sqrt(15))^(1/3)-7/(12*(350+105*sqrt(15))^(1/3))-1/6+(1/2*I)*sqrt(3)*(-(1/30)*(350+105*sqrt(15))^(1/3)-7/(6*(350+105*sqrt(15))^(1/3))), (1/60)*(350+105*sqrt(15))^(1/3)-7/(12*(350+105*sqrt(15))^(1/3))-1/6-(1/2*I)*sqrt(3)*(-(1/30)*(350+105*sqrt(15))^(1/3)-7/(6*(350+105*sqrt(15))^(1/3)))

simplify(convert(Splits(q,x),radical))    gives:
[20, [[(1/30)*(350+105*sqrt(5)*sqrt(3))^(1/3)+1/6-7/(6*(350+105*sqrt(5)*sqrt(3))^(1/3))+x, 1], [-(1/60)*(I*sqrt(3)*(350+105*sqrt(5)*sqrt(3))^(2/3)+(35*I)*sqrt(3)+(350+105*sqrt(5)*sqrt(3))^(2/3)-60*x*(350+105*sqrt(5)*sqrt(3))^(1/3)-10*(350+105*sqrt(5)*sqrt(3))^(1/3)-35)/(350+105*sqrt(5)*sqrt(3))^(1/3), 1], [(1/60*I)*sqrt(3)*(350+105*sqrt(5)*sqrt(3))^(1/3)+(7/12*I)*sqrt(3)/(350+105*sqrt(5)*sqrt(3))^(1/3)-(1/60)*(350+105*sqrt(5)*sqrt(3))^(1/3)+1/6+7/(12*(350+105*sqrt(5)*sqrt(3))^(1/3))+x, 1]]]

None of them give me what I want. Is there any build-in function that can help me do that?

Thanks!

William

 

I haven't soved yet why dchange is not working for this simple command. Any help out there?

Thanks a lot

how will i go about solving this problem, i want to return somthing like this (this anwser is from another function that did not contain sin, and therefor did not gave me problems).

thx in advance
 

Hey there folks - I have the following headcracker...

I have 2 equations:

                    cos(a t) = cos(b t + c)
    &   
                    sin(a t) = sin(b t + c)
 

Where a, b and c are known constants, and t is a variable.

I would like to find a way to solve these 2 equations simultaneously, i.e. find the t values that solve both equations at the same time. Of course, there will be an infinite number of solutions, so I also need a way to define an interval that t needs to be restricted to, e.g. t = 0..20 * Pi .

The best I've managed is:
 

   ... but I can't seem to make this work for solving the 2 trig. equations simultaneously

nor can I figure out the syntax for getting all solutions compiled as a list, e.g.

- which would be enormously helpful for further calculations.

Can anyone give some help on this?

Regards,  Matthew

Not to long ago i found a post showing that maple was able to show the steps behind math.

example:

twostep:=proc(expr::uneval)
   (convert(expr,name) =
    subsindets(expr,And(name,satisfies(t->type(eval(t),constant))),
               z->convert(eval(z),name)))
   = eval(expr):
end proc:

a:=1:
b:=3:
c:=5:

h:=twostep(a+b*c);

                     (a+b*c = 1 + 3*5) = 16

However if I assign a unit to any of these numbers (a,b or c), the twostep code won't work.

Is there any way that maple can show the steps, while having it both show and convert the units?

example:

a:=70V:

b:=40Ohm:   (I can't insert the Omega sign)

c:= twostep(a/b);

                (a/b=70V/40Ohm) = 1,75A

I want to make the blue output my procedure spits out a another color, and align it to the right, is this even possible? Or something like it?

I basically want to make a Maple procedure that does certain calculations and writes the explanation for each calculation. I do however want Maple to write these explanations as a text field like in a normal Maple worksheet, instead of the blue output in the middle. Is this possible? Or is there any alternative ideas you have that I could try? Would really appreciate any kind of help, thanks.

I have included a transfer function of a 3 degree of freedom system.  There are special loci, aside from s = 0, where the numerator will equate to a REAL scalar value, and the denominator will reduce to a simple product of the individual z roots.  Does anyone know if there is some physical significance, interpretation, or analog to this condition and special loci?untitled.mw

 

I am using matrices to input data in order to plot it on a surface plot. Is it then possible to export an animation of this graph rotating around an axis?

My matrix is 40 x 3 Matrix

 

Thanks :)

Here is a problem from SEEMOUS 2017 (South Eastern European Mathematical Olympiad for University Students)
which Maple can solve (with a little help).

For k a fixed nonnegative integer, compute:

Sum( binomial(i,k) * ( exp(1) - Sum(1/j!, j=0..i) ), i=k..infinity );

(It is the last one, theoretically the most difficult.)

Hello friends!

I have one question, whenever I solved system of ODEs using numerical solution (bilton command i.e., dsolve(dsys1, numeric, output = listprocedure, range = 0 .. 1)), its accutacy always like 10 or 12 digits not above at all. I want to how i improve the accuracy. I am waiting your postive answer.

HI MaplePrimes,

Is the Goldbach Weak Conjecture proven?

Consider odd primes p, q, and r.  The question is, Is the sum p+q+r sufficient to reach all odd numbers greater than 9?

See - 

https://en.wikipedia.org/wiki/Goldbach's_weak_conjecture

I tried an example.

looping_for_Goldbach_Weak_Conjecture_8.mw

looping_for_Goldbach_Weak_Conjecture_8.pdf

Regards,

Matt

 

restart;

Digits := 18;
with(LinearAlgebra);
f := proc (n) 3*sin(x[n]) end proc;

g := proc (n) 3*cos(x[n])

end proc;

#problem call.
for n from 0 to 0 do

e1 := expand(-y[n+3/2]+y[n]-3*y[n+1/2]+3*y[n+1]+1/11612160*(5856*h^4*g(n+1/2)-19968*h^4*g(n+3/2)+2343*h^4*g(n)-76356*h^4*g(n+1)-7058*h^4*g(n+2)+608864*h^3*f(n+1/2)+104864*h^3*f(n+3/2)+28489*h^3*f(n)+702864*h^3*f(n+1)+6439*h^3*f(n+2)));

e2 := expand(-y[n+2]+3*y[n]-8*y[n+1/2]+6*y[n+1]+1/5806080*(18768*h^4*g(n+1/2)-32880*h^4*g(n+3/2)+3867*h^4*g(n)-76356*h^4*g(n+1)-2229*h^4*g(n+2)+965728*h^3*f(n+1/2)+461728*h^3*f(n+3/2)+45953*h^3*f(n)+1405728*h^3*f(n+1)+23903*h^3*f(n+2)));

e3 := expand(-z[n]+(1/383201280*(-4207440*h^4*g(n+1/2)-930192*h^4*g(n+3/2)+371973*h^4*g(n)-3631932*h^4*g(n+1)-41259*h^4*g(n+2)+16136096*h^3*f(n+1/2)+3866720*h^3*f(n+3/2)+5752543*h^3*f(n)+5810400*h^3*f(n+1)+367681*h^3*f(n+2))+4*y[n+1/2]-3*y[n]+y[n+1])/h);

e4 := expand(-z[n+1/2]+(1/191600640*(376320*h^4*g(n+1/2)+118896*h^4*g(n+3/2)-29469*h^4*g(n)+532764*h^4*g(n+1)+5079*h^4*g(n+2)-5812112*h^3*f(n+1/2)-508016*h^3*f(n+3/2)-381553*h^3*f(n)-1236168*h^3*f(n+1)-45511*h^3*f(n+2))-y[n]+y[n+1])/h);

e5 := expand(-z[n+1]+(1/383201280*(-31920*h^4*g(n+1/2)-433776*h^4*g(n+3/2)+71547*h^4*g(n)-2519748*h^4*g(n+1)-17493*h^4*g(n+2)+18565216*h^3*f(n+1/2)+1933216*h^3*f(n+3/2)+885665*h^3*f(n)+10391328*h^3*f(n+1)+158015*h^3*f(n+2))-5*y[n+1/2]+y[n]+3*y[n+1])/h);

e6 := expand(-z[n+3/2]+(1/95800320*(250224*h^4*g(n+1/2)-730680*h^4*g(n+3/2)+61266*h^4*g(n)-1526256*h^4*g(n+1)-22044*h^4*g(n+2)+15680504*h^3*f(n+1/2)+4712456*h^3*f(n+3/2)+735469*h^3*f(n)+22576428*h^3*f(n+1)+203623*h^3*f(n+2))-8*y[n+1/2]+3*y[n]+5*y[n+1])/h);

e7 := expand(-z[n+2]+(1/383201280*(3873264*h^4*g(n+1/2)+332976*h^4*g(n+3/2)+497649*h^4*g(n)-1407564*h^4*g(n+1)-720255*h^4*g(n+2)+114710816*h^3*f(n+1/2)+93716192*h^3*f(n+3/2)+5705827*h^3*f(n)+191366496*h^3*f(n+1)+9635389*h^3*f(n+2))-12*y[n+1/2]+5*y[n]+7*y[n+1])/h);

e8 := expand(-p[n]+(1/191600640*(13423440*h^4*g(n+1/2)+3068304*h^4*g(n+3/2)-1621317*h^4*g(n)+11615292*h^4*g(n+1)+137451*h^4*g(n+2)-32503712*h^3*f(n+1/2)-12664928*h^3*f(n+3/2)-32539039*h^3*f(n)-16869600*h^3*f(n+1)-1223041*h^3*f(n+2))-8*y[n+1/2]+4*y[n]+4*y[n+1])/h^2);

e9 := expand(-p[n+1/2]+(1/191600640*(-3053856*h^4*g(n+1/2)-213216*h^4*g(n+3/2)+98049*h^4*g(n)-509436*h^4*g(n+1)-10191*h^4*g(n+2)-1045120*h^3*f(n+1/2)+831104*h^3*f(n+3/2)+1331083*h^3*f(n)-1207008*h^3*f(n+1)+89941*h^3*f(n+2))-8*y[n+1/2]+4*y[n]+4*y[n+1])/h^2);

e10 := expand(-p[n+1]+(1/63866880*(194160*h^4*g(n+1/2)-373968*h^4*g(n+3/2)+52329*h^4*g(n)-2514924*h^4*g(n+1)-14727*h^4*g(n+2)+14006304*h^3*f(n+1/2)+1695712*h^3*f(n+3/2)+634955*h^3*f(n)+15463008*h^3*f(n+1)+133461*h^3*f(n+2))-8*y[n+1/2]+4*y[n]+4*y[n+1])/h^2);

e11 := expand(-p[n+3/2]+(1/191600640*(1491168*h^4*g(n+1/2)-4758240*h^4*g(n+3/2)+190977*h^4*g(n)-509436*h^4*g(n+1)-103119*h^4*g(n+2)+46274944*h^3*f(n+1/2)+48151168*h^3*f(n+3/2)+2215307*h^3*f(n)+93985056*h^3*f(n+1)+974165*h^3*f(n+2))-8*y[n+1/2]+4*y[n]+4*y[n+1])/h^2);

e12 := expand(-p[n+2]+(1/191600640*(4772688*h^4*g(n+1/2)+11719056*h^4*g(n+3/2)+338619*h^4*g(n)+11615292*h^4*g(n+1)-1822485*h^4*g(n+2)+59770976*h^3*f(n+1/2)+79609760*h^3*f(n+3/2)+3528289*h^3*f(n)+109647648*h^3*f(n+1)+34844287*h^3*f(n+2))-8*y[n+1/2]+4*y[n]+4*y[n+1])/h^2) end do;
M := {e || (1 .. 12)};

y_init := 1;

z_init := 0;

p_init := -2;

x_init := 0; A := 0; B := 1; N := 40;

h := evalf((B-A)/N); count := 1;

X := y[k], y[k+1/2], y[k+1], y[k+3/2], z[k], z[k+1/2], z[k+1], z[k+3/2], p[k], p[k+1/2], p[k+1], p[k+3/2];

step := seq(eval(x, x = n*h), n = 1 .. N);

y_exact := ([seq])(eval(3*cos(x)+(1/2)*x^2-2, x = n*h), n = 1 .. N);

z_exact := ([seq])(eval((1/3*(3*x^2+6*x+3))/(x^3+3*x^2+3*x+1), x = n*h), n = 1 .. N);

p_exact := ([seq])(eval((1/3*(6*x+6))/(x^3+3*x^2+3*x+1)-(1/3)*(3*x^2+6*x+3)^2/(x^3+3*x^2+3*x+1)^2, x = n*h), n = 1 .. N);
vars := seq(X, k = 1);
printf("\n%4s%13s%15s%15s\n", "@", "y_Num", "y_Exact", "y_Error");

for q to N do

for ix to 4 do

x[ix] := h*ix+x_init end do;

result := eval(`<,>`(vars), fsolve(eval(M, [x[0] = x_init, x[1/2] = x_init, x[3/2] = x_init, y[0] = y_init, y[1/2] = y_init, y[3/2] = y_init, z[0] = z_init, z[1/2] = z_init, z[3/2] = z_init, p[0] = p_init, p[1/2] = p_init, p[3/2] = p_init]), {vars}));

for k to 4 do

printf("%5.2f %14.15f", step[count], result[k]);

printf("%20.15f %10.18G \n", y_exact[count], abs(result[k]-y_exact[count]));

count := count+1;

P := [result[k]]

end do;

x_init := x[ix-1];

y_init := result[4];

z_init := result[8];

p_init := result[12]

end do;

 

please that is the code i write to solve the problem after using the matrix form to generate the value but is given me error of the form


   @        y_Num        y_Exact        y_Error
Error, invalid input: eval received fsolve({-6398.00004614630940+6400.00000000000000*y[1], -6397.99992849910140+6400.00000000000000*y[1], -6397.99909739580050+6400.00000000000000*y[1], -199.999989717789185+200.000000000000000*y[1], -40.0000000791700798+40.0000000000000000*y[1], -2.99999993737911015+3*y[1], 39.999999768462113+40.0000000000000000*y[1], -p[1]-6399.99961623646730+6400.00000000000000*y[1], -p[2]-6399.99798489466010+6400.00000000000000*y[1], -y[2]-4.99999972458202552+6*y[1], -z[1]-159.999999048856193+120.000000000000000*y[1], -z[2]-279.999973921987948+280.000000000000000*y[1]}, {p[1], p[2], p[3/2], p[5/2], y[1], y[2], y[3/2], y[5/...
 

I have the following function which came from a collaborator of a collaborator. It computes a generating function for a family of function's we're using.

GF_Generate := proc (n) 
	local summand, i, j;
	summand := U[0]^x[0]*mul(U[i]^y[i], i = 1 .. n)*mul(binomial(x[0]+add(w[j], j = 1 .. i), y[i])*p^y[i]*(1-p)^(x[0]+add(w[j], j = 1 .. i)-y[i])*binomial(x[0]-1+add(w[j], j = 1 .. i), x[0]-1+add(w[j], j = 1 .. i-1))*v[i]^(x[0]+add(w[j], j = 1 .. i-1))*(1-v[i])^w[i], i = 1 .. n);

	for j from n by -1 to 1 do summand := normal(sum(summand, y[j] = 0 .. infinity)) end do;
	for j from n by -1 to 1 do summand := normal(sum(summand, w[j] = 0 .. infinity)) end do;
	
	sum(summand, x[0] = 0 .. infinity) 
end proc;

For arguments of 2 and 3 it's quick and works fine on Maple18 (tested both GUI and terminal client on OS X), Maple2015 (tested terminal client only on RHEL linux), but generates a "too many levlels of recursion" error in Maple2016 (tested terminal client only on RHEL linux; same server as Maple2015 was tested). It's slow for arguments of 4 and above (45 minutes for n=4 on my mac laptop), so I haven't tested it thoroughly with larger arguments.

Any idea why this code fails in Maple 2016?

 

2 3 4 5 6 7 8 Last Page 4 of 1242