dharr

Dr. David Harrington

8270 Reputation

22 Badges

20 years, 359 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

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).
In general, getting things in the form you want can be difficult. If I need to verify a solution, or check two things equal, rather than manipulating one into the other, I simplify(a-b) and see if it is zer. You may have to use the assume facility to get it to work.
To get the output written with primes, try with(PDEtools): declare(y(t), prime=t); diff(y(t),t)+3*y(t);
The mtaylor commnad can probably do what you want, but you want to be careful about what you mean by nonlinear terms.
f:=sin(x^2/(x^10+2))*exp(2*x); eval(diff(f,x$8),x=0); Note that you need exp(2*x) instead of e^(2*x).
Not quite clear what you want here; an example of your equation would help. What do you mean by an equation that is a function of x,y,t - because f(x,y,t) requires a 4-D plot. Or is it f(x,y,t)=0, or y=f(x,t)? The last ones can be done with a series of spacecurves, if I understand correctly what you want, e.g., with(plots):spacecurve({[cos(t),sin(t),0],[2*cos(t),2*sin(t),1],[3*cos(t),3*sin(t),3]},t=0..8*Pi,axes=boxed);
I think you don't want to differentiate with respect to the Lagrange multiplier. Also, you want things in terms of x, so solve for lambda, y, z rather than x, y, z. Then you get your hand calculated answer: > L:= x*y*z + lambda* (U - (10-x)*(10-y)*(10-z)): > solve( {diff(L, x)=0, diff(L,y)=0, diff(L,z)=0},{lambda,y,z} ); gives {lambda = 0, y = 0, z = 0}, {y = x, lambda = -x^2/(100-20*x+x^2), z = x} Cheers, David.
First 78 79 80 81 82 Page 80 of 82