dharr

Dr. David Harrington

8195 Reputation

22 Badges

20 years, 334 days
University of Victoria
Professor or university staff
Victoria, British Columbia, Canada

Social Networks and Content at Maplesoft.com

Maple Application Center
I am a retired professor of chemistry at the University of Victoria, BC, Canada. My research areas are electrochemistry and surface science. I have been a user of Maple since about 1990.

MaplePrimes Activity


These are answers submitted by dharr

Using a set within display means you can't determine the order. If you just have the two plots as arguments, then the second one is on top of the first: xp:=[1,0.5,0.4,1.5];yp:=[2.1,3,3,1];a:=2;h:=1;w:=1;p:=0; with(plots): points:=Statistics[ScatterPlot](xp,yp,symbol=box): curve:=plot(h + a*cos(w*x+p),x=0..2,title="Function and Data Plot",thickness=2): display(curve, points); display(points, curve);
Thanks to JacquesC I can create help pages for my package and make an examples worksheet in the help database appear as a worksheet. Now I have some problems making these to appear correctly in the help browser table of contents. I can get my list of pages in the browser TOC, but: 1. They are always in alphabetical order. How can I change this, in particular my overview page should appear first. 2. ?packname,topic2 does not work if topic2 is an alias. 3. After selecting the examples worksheet, exiting that worksheet deletes all the entries in the table of contents for the session (this one seems more like a bug). Suggestions, Thanks, David.
The infolevel function is used for this purpose. See the help for the Student package and infolevel. At the simplest it is just with(Student): infolevel[Student]:=1; Your example is too simple to have additional information provided. If you were integrating, or doing something more complicated, you would get information about the method being used.
I think you can only use a given integer for i, e.g., i=2 will work, but the general formula for arbitrary i is too hard.
look at the help page for DEplot; it has a Lotka-Volterra example. odeplot can also be used for plotting solutions to DEs. If you need more than just plot output, take a look at dsolve.
The following works: de:=v(x)*(diff(v(x), x)) = -k/x^2; ini:=v(a)=v0; dsolve({de,ini},{v(x)}) assuming positive;
I gave up waiting before I got the error message; not sure specifically why it occurs. As a general comment, RoofOf is not much use unless you are going to further manipulate the analytical solution. Allvalues is best for polynomial solutions. Since there is unlikely to be an analytical solution here, just use fsolve instead of solve (the second solution is just the negative of the one provided).
Note that a:=2*a; gives a recursion error, and so it will also with multiple assignments. But if you have expressions or values you want to double, try a,b,c := op(map(x->2*x,[5,7,8])); The op() just removes the square brackets around the list.
If your left hand sides are meant to be second derivatives then you can do it like: eqn1 := (D@@2)(x)(t) = -a*sqrt(D(x)(t)^2+D(y)(t)^2)*D(x)(t); eqn2 := (D@@2)(y)(t) = g-a*sqrt(D(x)(t)^2+D(y)(t)^2)*D(y)(t); dsolve({eqn1,eqn2},{x(t),y(t)}); If you add some initial conditions within the {} with eqn1 and eqn 2 you can get a nicer expression.
These equations have an (ugly) solution, so I would first solve analytically and then substitute in the numerical values. restart: Digits := 16: with(plots): params:={Is = 10^(-14),Vt = 0.026,M = 10,Rl = 10e3,R1 = 600,R2 = 3e3}; eq1:=0 = -I1 + Is*exp((Vin - (I1*R1 + (I1 + I2)*R2))/Vt); eq2:=0 = -I2 + Is*exp((Vin - (I1 + I2)*R2)/Vt); ans:=solve({eq1,eq2},{I1,I2}): plot(rhs(subs(params,ans[2])),Vin=1..2);
Not sure entirely why it doesn't work - somehow the plot must try values outside the valid range. The following seems to work: plot(f1,1..5);
One simple way to get b1 out is just to do subs(sols,b1) and so on.
Use the view option; see ?plot,options for details.
In general, when solving polynomials, the index= mechanism of RootOf is meant to solve this problem. So ans2:=RootOf(E1*_Z^4 - _Z^2*(2*E1^2) + E1^3 - E1*E2^2,index=2); evalf(subs(E1=5,E2=3,ans2)); should always give the second root (whatever that means). Actually in your case you could just solve the quartic once and for all and then substitute in the E1 and E2 values afterwards because the solutions are very simple: eqn:=E1*NZ^4 - NZ^2*(2*E1^2) + E1^3 - E1*E2^2=0: solve(eqn,NZ); gives (E1-E2)^(1/2), -(E1-E2)^(1/2), (E1+E2)^(1/2), -(E1+E2)^(1/2)
There are three solutions for x, found by ans:=solve(t*x^3-q*x-2*q^2=0,x): Then to evaluate your second expression at the first of these: y:=eval(-x/2 -(x+2*q)^2/(8*t*x^2),x=ans[1]); and likewise for the second and third. (You were missing some multiplication signs).
First 77 78 79 80 81 Page 79 of 81