Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

hi.i calculate this integral numerically but after use this result in my differential equation which is involve f3(x), i enconter with error

i found that this problem is due to answer of this integtal.may i use another way to calculte it?as shown power in result are very large!!!

``

restart; Digits := 15; g3 := theta^2*(theta-1)^2; beta := 100; chi := 5; kappa := 5; a := 0

0

(1)

with(Student[Calculus1]); -1; a31 := evalf(ApproximateInt(-beta^2*g3/((1-g3*f3(x))*ln(2*kappa*(1-g3*f3(x)))^2), theta = a .. 1, method = simpson)); -1; a32 := evalf(ApproximateInt(-chi*g3/(1-g3*f3(x))^4, theta = a .. 1, method = simpson))

-1.33333333333333*(-0.191597582462488e152*f3(x)-0.863011826221205e146*f3(x)^9-0.706378636532818e148*f3(x)^7+0.846944805095211e147*f3(x)^8+0.130151241709538e151*f3(x)^4-0.283379399043279e150*f3(x)^5+0.493554199542613e149*f3(x)^6+0.117104095781373e152*f3(x)^2-0.459581479474515e151*f3(x)^3+0.151119505345015e152+0.755561753647024e145*f3(x)^10+0.175123383079432e97*f3(x)^36-0.244416009548583e100*f3(x)^35+0.163803382818292e103*f3(x)^34-0.704973843312161e105*f3(x)^33+0.219681545650952e108*f3(x)^32-0.529211072065593e110*f3(x)^31+0.102639576866076e113*f3(x)^30-0.164658103849427e115*f3(x)^29+0.222629381398692e117*f3(x)^28-0.257124576224432e119*f3(x)^27+0.256176429040311e121*f3(x)^26-0.221804182616290e123*f3(x)^25+0.167834727658308e125*f3(x)^24-0.111474607475097e127*f3(x)^23+0.652137994527267e128*f3(x)^22-0.336921770775584e130*f3(x)^21+0.154034904897255e132*f3(x)^20-0.624063631993155e133*f3(x)^19+0.224251041670249e135*f3(x)^18-0.714943093769717e136*f3(x)^17+0.202175772822691e138*f3(x)^16-0.506683948932158e139*f3(x)^15+0.112368506172683e141*f3(x)^14-0.220033360070981e142*f3(x)^13+0.379271084508473e143*f3(x)^12-0.573179869691401e144*f3(x)^11)/((-160000.+9801.*f3(x))^4*(-16.+f3(x))^4*(-256.+9.*f3(x))^4*(-10000.+441.*f3(x))^4*(-160000.+8281.*f3(x))^4*(-625.+36.*f3(x))^4*(-160000.+361.*f3(x))^4*(-10000.+81.*f3(x))^4*(-160000.+2601.*f3(x))^4*(-625.+16.*f3(x))^4)

(2)

``

 

Download integral.mwintegral.mw

thanks..

I have written a code which generates a Gaussian like curve as a set of points and have written some basic commands to find several important quantities from the plot. The three of importance here are the peak position, peak height and Full Width at Half Maximum.

See the attached minimal working example maple worksheet.

It can find the peak position and the peak height no problem, but another quantity I want it to find is the Full Width at Half Maximum (FWHM). I use the aforementioned calculated values to find the left and right components of the FWHM but the fsolve command just hangs.

In the worksheet this is not evident but in the much longer full code which I run through the terminal and prints the values to a file, it begins the fsolve command and reaches a particular value and it just hangs. No amount of waiting time makes it continue the calculation.

However if I use an approximate integration scheme (such as Riemann sums) then the fsolve part executed perfectly. fslove seems to get stuck during the numerical integration step.

There is probably an easy answer to this problem which I am missing. Any help is appreciated.

fsolve_numerical_integration.mw

 

- Yeti

is there any command to plot ternarry plots that show the relationsh between three sets of data? For example check the link

https://en.wikipedia.org/wiki/Ternary_plot

Hi,

I am solving a system of differential equations with 2 variables. I can find numerical solution using dsolve with numeric option. I can also plot curves. But I also would like to extract data at time t0 and store into a file. I don't know how to extract numerical values from dsolve and store into a text file at various time, t0, t1, t2 etc. I would like to store data in tabular format with first, sceond and third columns are time, x and y respectively.

 

Just as an example, we can use

x'(t) = y(t), 

y'(t) = 6x(t) - y(t)

with x(0)=1 and y(0) = 2

 

Thanks.

I need to calculate Weyl scalar for a metric using null tetrad using debever package in maple 13. However, I am stuck at the defination of h (representing the covariant complex null tetrad). Is it the product of covariant null tetrad? I have worked it out by using covariant, contravariant and both covariant and contravariant null tetrad (like l_a*l_a, l^a*l^a, l_a*l^a), however, i am not getting the right result not even for the example given in the maple help for plane wave. please help me out that how should i define this h.

thanks,
suresh

I have a polynomial with parameter. I hope to solve the equation that every coefficient of the polynomial is zero.

For example

f(t):=(a+b+1)t+(a-b-1)

then I use the function solve(f(t),{a,b}),

I hope to get the solution to a+b+1=0 and a-b-1=0. However the output of Maple is {a = -(b*t-b+t-1)/(t+1), b = b}. How could regard t as a variable?

 

Thank you very much.

Dear All

Please see following:

 

Suppose we have

M := proc (i) options operator, arrow; i/(i+1) end proc

proc (i) options operator, arrow; i/(i+1) end proc

(1)

and

F := proc (i, j) options operator, arrow; M(i)/(M(i)+j) end proc

proc (i, j) options operator, arrow; M(i)/(M(i)+j) end proc

(2)

 For i from 1 to 5 and j from 1 to 5, how one can display all values of F(i,j) using "loop" ???

 

Download loop.mw

Regards

 

How to prove the inequality 12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d) <= (a+b+c+d)*(a*b+a*c+a*d+b*c+b*d+c*d) , assuming that the  variables are nonnegative? That hard question  was asked by arqady in dxdy and answered  by himself  in a complicated way. Maple proves the inequality by the LagrangeMultipliers command which is strong. I think these calculations cannot be done by hand at all. Without loss of generality one may assume a+b+c+d = 1. Then

 restart:with(Student[MultivariateCalculus]):

ans := [LagrangeMultipliers((a+b+c+d)*(a*b+a*c+a*d+b*c+b*d+c*d)-12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d), [a+b+c+d-1], [a, b, c, d], output = detailed)]:

We have to remove complex solutions by
ans1:=remove(c -> has(evalf(c), I),ans):

The next big output is  only partly seen in the post (look in the attached file for the whole one).

ans2:=simplify(ans1,radical);

[[a = 1/6, b = 1/2, c = 1/6, d = 1/6, lambda[1] = 0, -12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d)+(b+c+d)*a^2+(b^2+(3*c+3*d)*b+c^2+3*c*d+d^2)*a+(d+c)*b^2+(c^2+3*c*d+d^2)*b+c^2*d+c*d^2 = 0],[a = 1/4, b = 1/4, c = 1/4, d = 1/4, lambda[1] = 0, -12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d)+(b+c+d)*a^2+(b^2+(3*c+3*d)*b+c^2+3*c*d+d^2)*a+(d+c)*b^2+(c^2+3*c*d+d^2)*b+c^2*d+c*d^2 = 0],[a = 13/72-(1/216)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(1/216)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), b = 11/24+(1/72)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-(1/72)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), c = 13/72-(1/216)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(1/216)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), d = 13/72-(1/216)*sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(1/216)*sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), lambda[1] = -(5/36)*(sqrt(2)*(sqrt(3)*(sqrt(13397)-(71/27)*(11548+108*sqrt(13397))^(1/3)-(103/540)*(11548+108*sqrt(13397))^(2/3)+2887/27)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-15*sqrt(13397)+(355/9)*(11548+108*sqrt(13397))^(1/3)+(109/36)*(11548+108*sqrt(13397))^(2/3)-14435/9)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-(133/15)*(11548+108*sqrt(13397))^(2/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(2*((sqrt(13397)+2374/45)*(11548+108*sqrt(13397))^(1/3)+(103/5)*sqrt(13397)+(449/90)*(11548+108*sqrt(13397))^(2/3)+132727/45))*sqrt(3))/((11548+108*sqrt(13397))^(2/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))), -12*sqrt((a^2+b^2+c^2+d^2)*a*b*c*d)+(b+c+d)*a^2+(b^2+(3*c+3*d)*b+c^2+3*c*d+d^2)*a+(d+c)*b^2+(c^2+3*c*d+d^2)*b+c^2*d+c*d^2 = -(13/46656)*(((2/13)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+sqrt(2)*(sqrt(3)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-(11/13)*(11548+108*sqrt(13397))^(1/3)-(2/13)*(11548+108*sqrt(13397))^(2/3)+568/13))*sqrt(5)*sqrt((sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-33)*(sqrt(3)*sqrt(2)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-sqrt(3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+39)*(sqrt(2)*(sqrt(3)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(11/5)*(11548+108*sqrt(13397))^(1/3)+(2/5)*(11548+108*sqrt(13397))^(2/3)-568/5)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-(216/5)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))-(328/5*((11548+108*sqrt(13397))^(1/3)+(5/164)*(11548+108*sqrt(13397))^(2/3)-355/41))*sqrt(3))/((11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))))-(180/13)*sqrt(2)*(sqrt(3)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(11/5)*(11548+108*sqrt(13397))^(1/3)+(2/5)*(11548+108*sqrt(13397))^(2/3)-568/5)*sqrt((11*(11548+108*sqrt(13397))^(1/3)-(11548+108*sqrt(13397))^(2/3)+284)/(11548+108*sqrt(13397))^(1/3)+273*sqrt(3)/sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))-(15552/13)*(11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3))+(11808/13*((11548+108*sqrt(13397))^(1/3)+(5/164)*(11548+108*sqrt(13397))^(2/3)-355/41))*sqrt(3))/((11548+108*sqrt(13397))^(1/3)*sqrt((2*(11548+108*sqrt(13397))^(2/3)+11*(11548+108*sqrt(13397))^(1/3)-568)/(11548+108*sqrt(13397))^(1/3)))]

(1)

evalf(ans2);

[[a = .1666666667, b = .5000000000, c = .1666666667, d = .1666666667, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .2500000000, b = .2500000000, c = .2500000000, d = .2500000000, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .1666666667, b = .1666666667, c = .5000000000, d = .1666666667, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .1666666667, b = .1666666667, c = .1666666667, d = .5000000000, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .5000000000, b = .1666666667, c = .1666666667, d = .1666666667, lambda[1] = 0., -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.], [a = .2118620934, b = .3644137199, c = .2118620934, d = .2118620934, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3], [a = 0.3692850681e-1, b = .8892144797, c = 0.3692850681e-1, d = 0.3692850681e-1, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .8892144797, b = 0.3692850681e-1, c = 0.3692850681e-1, d = 0.3692850681e-1, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .3644137199, b = .2118620934, c = .2118620934, d = .2118620934, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3], [a = 0.3692850681e-1, b = 0.3692850681e-1, c = 0.3692850681e-1, d = .8892144797, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .2118620934, b = .2118620934, c = .2118620934, d = .3644137199, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3], [a = 0.3692850681e-1, b = 0.3692850681e-1, c = .8892144797, d = 0.3692850681e-1, lambda[1] = 0.9303874297e-1, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.3101291407e-1], [a = .2118620934, b = .2118620934, c = .3644137199, d = .2118620934, lambda[1] = 0.2834790478e-2, -12.*((a^2+b^2+c^2+d^2)*a*b*c*d)^(1/2)+(b+c+d)*a^2+(b^2+(3.*c+3.*d)*b+c^2+3.*c*d+d^2)*a+(d+c)*b^2+(c^2+3.*c*d+d^2)*b+c^2*d+c*d^2 = 0.9449303017e-3]]

(2)

Indeed, the minimum value of the target function is exactly 0. Quod erat demonstrantum.

NULL

 inequality.mw

 

A wealth of knowledge is on display in MaplePrimes as our contributors share their expertise and step up to answer others’ queries. This post picks out one such response and further elucidates the answers to the posted question. I hope these explanations appeal to those of our readers who might not be familiar with the techniques embedded in the original responses.

The Question: Transforming functions to names

Bendesarts wanted to know how to make programmatic changes to characters in a list. He wrote:

I have this list :

T:=[alpha(t),beta(t)]

I would like to create this list automatically:

Tmod:=[alpha_,beta_]

In other words, how can I remove the 3 characters "(t)" and replace it by "_"

Do you have ideas to do so ?

Thanks a lot for your help

Joe Riel provided a complete answer that had three different approaches. He wrote:

Map, over the list, a procedure that extracts the name of the function and catenates an underscore to it. The function name is extracted via the op procedure, e.g. op(0,f(a,b,c)) evaluates to f. Thus 

map(f->cat(op(0,f),_),T);

Note that this fails if the name of a function is indexed, e.g. f[2](a). No error is generated but the catenation doesn't evaluate to a symbol. Presumably that isn't an issue here.  One way to handle that case is to first convert the indexed name to a symbol, then catenate the underscore.  So a more robust version is

map(f->cat(convert(op(0,f),'symbol'),_),T);

However, if you are actually dealing with indexed names you might want a different result. Another way to do the conversion, and combine it with the catenation, is to use nprintf, which generates a name (symbol). Thus

map(f -> nprintf("%a_", op(0,f)),T);

 

Let’s discuss each approach by understanding the definitions and functionalities of the commands used. 

The map command, map(fcn, expr, arg1, ..., argN) applies a procedure or name, fcn, to the operands or elements of an expression, expr. The result of a call to map is a copy of expr with the ith operand of expr replaced by the result of applying fcn to the ith operand.  This concept is easier to grasp by looking at a few examples related to the usage of map in this question.

Example 1.  map(x-> x2,x+y)         returns     x2+y2                    

Example 2. map(a -> a-b, sin(x))    returns     sin(x-b)

 

The cat function, cat(a,b,c,…), is commonly used to concatenate (or join) string and names together. This function’s parameters: a,b,c…, can be any expressions.

Example 1. cat(a,2)                      returns     a2

Example 2.  cat(“a”,3,sin(x))          returns    “a3sin(x)”

 

The op function, op(i..j,e), extracts operands from an expression. The parameters i and j are the integers indicating positions of the operands and e is the expression. For functions, as in this example, op(0,e) is the name of the function.

Example 1.  op(0,alpha(t))            returns   the symbol alpha

Example 2.  op(0, sin(x))              returns    sin

 

Now analyzing Joe Riel's code will be easier.

  1. map(f->cat(op(0,f),_),T);

In this approach Joe is extracting the name of the functions, alpha and beta, and then concatenating it to the underscore symbol. Then using the mapping function he applies the previous procedure to the list T.

  1. map(f->cat(convert(op(0,f),'symbol'),_),T);

This approach is a lot similar to the previous one, but he added the convert function in case the function inside of map was indexed. Convert(expr, form, arg3,..), is used to change an expression from one form to another. In this example op(0,f) has been changed from type name to type symbol.

  1. map(f -> nprintf("%a_", op(0,f)),T);

Again this is a similar approach but it uses nprintf. This command, nprintf(fmt,x1,..xn), is based on a C standard library command of the same name. It uses the format specifications in the fmt string to format and writes the expression into a Maple symbol, which is returned. In this example the format specified is the algebraic format “%a”.

 

This blog was written by Maplesoft’s intern Pia under the supervision of Dr. Robert Lopez. We both hope that you find this useful. If there is a particular question on MaplePrimes that you would like further explained, please let us know. 

Dear Maple users

I wanted to use the zip-command to muliply two lists with units. It works without units, but not with units:

 

 

If I add units to each entrance it works too, but not very convenient. How is it done with units in the best way?

 

Regards,

Erik

Hi,

I am designing a power transformer using Maple, and I am trying to solve for the minimum number of turns around my core for the desired effect. The equations to solve include numbers of turns (must be positive integers) and other constraints (positive floats).

To validate my worksheet, I am beta-testing it on an existing transformer, so I know of at least one solution that works. But when I submit the equations to Maple, it can't find the solution I know with integer solutions.

 

The equation is :

SOL := `assuming`([solve({N__2/N__1 = m__t, k__c*L__L(g__ap*Unit('m'), N__1)*I__M__pk = (1/2)*V__sec*T__res/m__t, g__ap <= 2*10^(-3), B__max(g__ap*Unit('m'), N__1, I__M__pk) <= B__max__core}, {N__1, N__2, g__ap, I__M__pk}, UseAssumptions)], [N__1::posint, N__2::posint, g__ap::positive])

 

And Maple's answer : 

{N__1 = 7.701193685, N__2 = 12.50000000*N__1, I__M__pk = (-1.855203719*10^9*g__ap^2+1.523613883*10^11*g__ap+5.590656409*10^6)*Unit('A')/(5.000000*10^6+2.43902439*10^8*g__ap), I__M__pk = (-1.100291349*10^11*g__ap^2+9.036307746*10^12*g__ap+3.315727980*10^8)*Unit('A')/(N__1^2*(5.000000*10^6+2.43902439*10^8*g__ap)), g__ap <= 0.2000000000e-2, 0. < g__ap}

 

Except I know there is a solution with N__1 = 6 and N_82 = 75. If I force n__1:=75 and solve again for the other variables, the solution is OK : 

X := `assuming`([solve({N__2/N__1 = m__t, k__c*L__L(g__ap*Unit('m'), N__1)*I__M__pk = (1/2)*V__sec*T__res/m__t, g__ap <= 2*10^(-3), B__max(g__ap*Unit('m'), N__1, I__M__pk) <= B__max__core}, {N__2, g__ap, I__M__pk}, UseAssumptions)], [N__2::posint, g__ap::positive])

And the answer :

X := {N__2 = 75., I__M__pk = -0.3759328777e-1*Unit('Wb')*(8.130081300*10^10*g__ap^2-6.676951220*10^12*g__ap-2.45000000*10^8)/(Unit('H')*(5.000000*10^6+2.43902439*10^8*g__ap)), g__ap <= 0.2000000000e-2, 0. < g__ap}

 

I am a bit puzzled about why Maple doesn't find this solution...

 

Thank you very much for your help.

 

Hello there,

I want to simplify this for a given rule in Maple

(-(1/2)*ib-(1/2)*ia+ic)*vc+(-(1/2)*ia-(1/2)*ic+ib)*vb+(-(1/2)*ic-(1/2)*ib+ia)*va

rule :  ia+ib+ic=0

A desired result should be 

3/2*ic*vc+3/2*ib*vb+3/2*ia*va 

but I can't apply this rule in Maple...  it seems like recursive and goes back again and again.

 

Can it break the recursive routine and make it as a desired result?

 

 Thank you

Hey guys,

 

I want to fit experimental data and I was wondering if there is a special PolynomialFit function for a surface.

My data consist of a X,Y, Matrix of densities and I want to have a function describing the surface of the values. On matlab the following code will do so:

[x, y, z] = prepareSurfaceData(temps, concs, densities);
ft = fittype('poly33');
fitresult = fit([x, y], z, ft);

Maybe that gives you a better view of what I want.

Best regards

I want to plot the position of Spherical pendulum. there are differential equation for spherical pendulum in spherical coordinates

sys := {((D@@2)(phi))(t) = -2*(D(phi))(t)*(D(theta))(t)*cos(theta(t))/sin(phi(t)),
((D@@2)(theta))(t) = (D(phi))(t)^2*cos(theta(t))*sin(theta(t))-9.8*sin(theta(t))}

 

with initial conditions

theta(0) = (1/2)*Pi, (D(theta))(0) = 0, phi(0) = (1/2)*Pi, (D(phi))(0) = 1

I tried:

eq := dsolve([((D@@2)(theta))(t) = (D(phi))(t)^2*cos(theta(t))-9.8*sin(theta(t)),
((D@@2)(phi))(t) = -2*(D(phi))(t)*(D(theta))(t)*cos(theta(t))/sin(phi(t)),
theta(0) = (1/2)*Pi, (D(theta))(0) = 0, phi(0) = (1/2)*Pi, (D(phi))(0) = 1],numeric)

how to change coordinates

x(t) = sin(theta(t))*cos(phi(t))
y(t) = sin(theta(t))*sin(phi(t))
z(t) = cos(theta(t))

and how to plot it from t=0 to 10?

Dear All

Please see following query:

 

 

 For following Algeraic expression

 

(3*a[1]+5*a[2])*U[1]+(-6*a[1]+2*a[2])*U[2]

 

How one can construct a matrix of the following form:

 

Matrix([[3, 5], [-6, 2]])

Matrix(2, 2, {(1, 1) = 3, (1, 2) = 5, (2, 1) = -6, (2, 2) = 2})

(1)

 

Where first row corresponds to U[1]and second row corresponds to U[2] and the entries of matrix are coefficients of a[1]and a[2]

 

 

Download Constructing_matrix_from_algebraic_expression.mw

Regards

First 1120 1121 1122 1123 1124 1125 1126 Last Page 1122 of 2224