Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

I wrote down a proceduer in maple for solving integro diff. equations which result in an ill conditioned linear system of algebraic equations. I used the LinearSolve command with method=LU to solve the system but my algorithm failed, and does not converge. Is there any command in maple for solving such systems

I tried to get the limit for this sqrt(-2*cos(alpha)*cos(alpha+d)+2-2*sin(alpha+d)*sin(alpha))/d, from right side

input

limit(sqrt(-2*cos(alpha)*cos(alpha+d)+2-2*sin(alpha+d)*sin(alpha))/d, d = 0, right);

return

sqrt(-signum(-2+2*cos(alpha)^2+2*sin(alpha)^2))*infinity;

when tried for next time

limit(combine(sqrt(-2*cos(alpha)*cos(alpha+d)+2-2*sin(alpha+d)*sin(alpha))/d), d = 0, right);

return

1

note that the expression evaluated is the same, but returns different answers, is there somebody know why or how to avoid maple to return wrong answers

Hi,

This maybe a really simple question, I remember this is doable but couldnt find where the answer is.

Say I write a function to sum up all values in the list,

mysum:=proc(data::list)

return printf("The sum is %3.3f. ", sum(data[i],i=1..numelems(data)));

end proc;

 

and I use it like,

mysum(listA);

mysum(listB);

 

How would I print out a more informative string, like this:

"The sum of listA is %3.3f. "

"The sum of listB is %3.3f. "

 

Use "data", the input, as a string argument.

 

Thanks,

 

casper

Hi all.

Assume that a Matrix P is (m+1)*(m+1) known matrix and we want to construct following special matrix

where

and

how can we do it by maple?

Note that the required matrix is of order k(m+1)*K(m+1)

 

thanks for any guide

 

Mahmood   Dadkhah

Ph.D Candidate

Applied Mathematics Department

with(plots):

a:=polarplot(3-3*cos(theta),theta=0..2*Pi):

c:=plot((3*sqrt(2)+3)/2 + ((-3*sqrt(2))/(-3*sqrt(2)-6))*(x+((3*sqrt(2)+3)/2)),x=-10..10):

display(a,c,view=[-10..10,-10..10]);

 

a:= is the polar plot of the cardiod (3-3cos(theta)


In order to plot the tangent line to the cardiod in theta= 3Pi/4, I find the point (x,y) in rectangular coord x=(3-3cos(theta)cos(theta) and y=(3-3cos(theta)sin(theta); then I find the derivative of dx/dy=

[(3-3*cos(theta)*cos(theta)+sin(theta)(3sin(theta)]/[-(3-3cos(theta)sin(theta)+cos(theta)(3sin(theta)]and from here I get the slope.So I can plot c:= tangent line to the cardiod in 3Pi/4.

How can I avoid having to convert everyting to rectangular coords, and plot the tangent line in polars?

 

 

I was calculating average BER for BPSK and while its execution encountered kernel failure with an error message as "execution stopped:stack limit reached.worksheet lost connection to kernel.you should save worksheet and restart maple."

how to overcome this error. Any help?

How do I get the vertical bar "divides" symbol in Maple 18?

Dear Maple experts,

 

I would like to visualize the equation -3*x+2*y+3*z=0  and (with other color) 2*y+3*z =0. I used the following commands:

with(Student[LinearAlgebra]):
infolevel[Student[LinearAlgebra]]:=1:
PlanePlot(-3*x+ 2*y + 3*z = 0, [x,y,z], normaloptions=[shape=harpoon], showbasis);

But I do not know how to show at the same time the second equation (2*y+3*z=0 ).

 

How should I proceed? Any hint?

Thanks for your attention,

 

Jean-Jaques

 

I am trying to find a way to take the rows of a matrix and put them in a sequence.  For example if i have the matrix 

M:=Matrix(3,[[1,1,1],[2,2,2],[3,3,3]]);

I want to rewrite it as S:= {111222333}.  

Sorry if this is not clear.  I know how to create a sequence, but I want to be able to use the Matrix and output a sequence without manually inputing the numbers.  

Thank you in advance for your help.  

Erik Postma from Maplesoft has recently posted a Maple application going through some of the ways how to produce random numbers in Maple: http://www.maplesoft.com/applications/view.aspx?SID=153662&P=TC-4444

Doing a fair bit of work involving random numbers (i.e. simulations) myself, I was naturally drawn to it. The document is a nice extension of the relevant help pages, making practical use of some of the procs in RandomTools easier and clearer.

One particular issue I recently ran into, however, is not covered. I needed a random generator for a particular custom pdf (not one of the already recognized pdfs) that happens to be 3-dimensional. And I needed to do this >twice<, with the second generation using the result of the first one as a parameter. the problem is not unlike the last example in the help page for Statistics:-Sample.

Here is what I did:

The pdf looks graphically like this (and note that in this plot it is not normalized):

plot3d(Triangle63:-Trianglef(CrystalAngle,DeflectionAngle),\
       CrystalAngle=-0.8..0.2,DeflectionAngle=-0.6..0.6,projection=0.7);

The first set of random numbers is generated by setting CrystalAngle to a fixed number (-0.1 in this case), normalizing the pdf to the integral over DeflectionAngle and then generating the random numbers. Note that evaluation of the integral is relatively time-consuming (seconds).

trianglepdf:=(CrystalAngle,DeflectionAngle) ->\
             Triangle63:-Trianglef(CrystalAngle,DeflectionAngle)/\
             'evalf(Int(Triangle63:-Trianglef(CrystalAngle,Da),Da=-0.6..0.6,method = _d01akc))':
triangle0pdf:=(t) -> trianglepdf(-0.1,t):
Cr1:=Distribution(PDF=triangle0pdf);
Y:=RandomVariable(Cr1);

samples:=Sample(Y,[1..600],method=[envelope,range=-0.6..0.6]);

Histogram(samples,view=[-0.6..0.6,default],labels=["Deflection Angle  (µrad)","Counts/bin"]);

This looks as it should; and the random number generation is reasonably fast once the initial setup has been done (i.e. the time used scales only relatively weakly with the count of random numbers generated.

The issue now is the second stage, where for each new random number, the number generated above is a new input parameter for CrystalAngle. So I can no longer define the pdf once since the pdf is different for each number generated.

The pedestrian way to do this is like the following:

samples2:=Vector(1..numelems(samples),datatype=float):
CrystalOffset:=0.3;

for ii from 1 to numelems(samples) do
  triangleiipdf:=(t) -> (trianglepdf(samples[ii]-~CrystalOffset,t)); # subtract (VR peak -> 0)
  Crii:=Distribution(PDF=triangleiipdf);
  samples2[ii]:=evalf(Sample(RandomVariable(Crii),1,method=[envelope,range=-0.6..0.6])[1]+CrystalOffset);
end do:

This works, but only sort-of. First, it is very slow, since the whole sertup happens for each number generated (Sample()). Secondly, it tends to hang at a certain number of steps through the loop. The value of ii where it hangs is arbitrary and changes with the other parameters and CrystalOffset. It is however consistent for identical runs.

The last example in help for Statistics:-Sample would indicate that one needs to setup the pdf as a function of t as well as the parameter, call Distribution() only once and then assign the value to the parameter and call Sample() to get the random number(s) drawn from the pdf with the parameter being set to the wanted value. While this works in the example which uses a built-in pdf, I find that I cannot make it work with my pdf. Either the parameter gets ignored (i.e. stuck at the first value) or the thing runs just as slowly as my procedure above.

Ultimately I programmed my own random generator for an arbitrary pdf which, while not as efficient as Maple's built-in generator, does produce the expected set of random numbers for the 2nd path in a reasonable time. It is a simple-minded envelope-rejection method, that works fo reasonably well-behaved pdfs:

Rarbit:=proc(pdf,xmin,xmax,pdfmax)
local dx:=xmax-xmin;
local x1,x2;
x1:=RandomTools[MersenneTwister]:-GenerateFloat64()*dx+xmin; # pick location on x axis
x2:=RandomTools[MersenneTwister]:-GenerateFloat64()*pdfmax; # y axis, probability of returning x1

while (x2>evalf(pdf(x1))) do # if above pdf, reject
  x1:=RandomTools[MersenneTwister]:-GenerateFloat64()*dx+xmin; # new x-axis value
  x2:=RandomTools[MersenneTwister]:-GenerateFloat64()*pdfmax; # check value
end do; # eventually we'll succeed and return one.

x1;
end proc;

Using this routine I get my second and final set of randome:

for ii from 1 to numelems(samples) do
  newpdf:=(DefAng) -> Triangle63:-Trianglef(samples[ii]-CrystalOffset,DefAng);
  samples2[ii]:=Random:-Rarbit(newpdf,-0.6,0.6,28);
  DocumentTools:-SetProperty(ProgressBar,'value',ii,refresh);
end do:
                      CrystalOffset := 0.3
Histogram(samples2+~samples,view=[-0.6..0.6,default]);

 I would be interested in Erik's comment on this.

Mac Dude

 

I am finding it a struggle to do this trivial task in Maple.

Given a matrix, I simply wanted to find the positions (index i,j) of all elements that meets some condition. For example, given matrix A:=[[1,2,3,],[4,5,-1]]; I want to find the index of all elements >=3, so the result should be a list of set such as

         [[1,3],[2,1],[2,2]] 

I tried to use member with 'pos' option but that does not work for matirx. It seems only designed for 1D

A:=Matrix( [ [1,2,3],[4,5,-1]] );
c:=select[flatten](x->x>=3,A);  #tried without flatten also
member(c,A,'pos');
pos;

Then I tried rtable_scanblock(), which is the most convoluted and badly documented command I have ever seen in my life (for such a complex command, one will expect 100 examples of many sorts of functionality to illustrate how to use, but only 3-4 trivial examples exist and 3 of them pretty much the same).  What is operation_passindex? what is operation_passnoindex? how to use them? Why is there a star next to val* and operation* ? What is passindex actually? is it a name? value? proc?  etc.. Worst help page ever. 11 parameters for a command??

This is what I tried:

A:=Matrix( [ [1,2,3],[4,5,-1]] ):
rtable_scanblock(A,[],(val,ind,res)->( evalb(val>=3),[ind,val],res),[[1,1],A[1,1]]);

So the result I want is there. I just do not understand why the true,false and those last entries are there and how to get rid of them. I tried. I think I need one other options, but I am lost with all the options listed there with no examples on how to use them.

rtable_scanblock(A,[],(val,ind,res)->`if`( val>=3,[ind,val],res),[[1,1],A[1,1]]);

but then I get only the last value:

I tried

rtable_scanblock(A,[],(val,ind,res)->`if`( evalb(val>=3),[ind,val],res),[[1,1],A[1,1]]);

no difference.  I think I am close, but after 30 minutes, I am calling it quit. If something so easy takes that much effort to find how to in Maple, then something is wrong.

In Matlab, I do this with my eyes closed:

A=[1,2,3;4,5,-1];
[I,J]=find(A>=3)

I =
     2
     2
     1
J =
     1
     2
     3

In Mathematica, such as trivial

mat = {{1, 2, 3}, {4, 5, -1}};
Position[mat, x_ /; x >= 3]

                 {{1, 3}, {2, 1}, {2, 2}}

Thank you

 

I want to write an equation in the text portion of my document.  I do not need it evaluated. I just want to write formulas, like I do in LaTeX. 

RandomCompositions:= proc(n::posint, k::posint)
local
C,
Compositions:= [seq(C-~1, C= combinat:-composition(n+k, k))],
Rand:= rand(1..nops(Compositions))
;
()-> Compositions[Rand()]
end proc:

R:= RandomCompositions(9,6):
n:= 2^13:
S:= 'R()' $ n:

 

I want to compile statistics each number in a sequence cannot  occur  over twice.

The sequences that do not fit the rule above must be ommitted.

The statistic is  Fermi-Dirac statistics.

confused the Bose-Einstein condensation and Fermi-Dirac statistics.

But the theory is right.

Hi all.

Assume that we have:

Where Q is known matrix. how can we produce this vector by maple?

Thanks a lot
Mahmood   Dadkhah

Ph.D Candidate

Applied Mathematics Department

Hi,

I don't manage to animate a DensityPlot. Here is my program :

> restart;
> with(Statistics): with(plots):
> P := lambda->RandomVariable(Poisson(lambda)):
> animate(DensityPlot,[P(n),range=0..10],n=1..5,frames=5);

And here is the error message :

Plotting error, non-numeric vertex definition

Thanks for any help

First 1319 1320 1321 1322 1323 1324 1325 Last Page 1321 of 2224