dharr

Dr. David Harrington

6765 Reputation

21 Badges

20 years, 101 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 replies submitted by dharr

@Ali Hassani 

subsup:=(base,sub,sup)->cat(`#msubsup(mi("`,base,`"),mi("`,sub,`"),mi("`,sup,`"))`);
subsup(x,5,7);

@Zeineb LinearSolve appears to be working now, but your new algorithm is diverging. I'm not able to see anything obviously wrong.

@Maple_lover1 You are setting all the coefficients zero to make the whole thing zero. So if the whole thing is zero, the numerator zero will be zero, and you can just work with that (provided the denominator doesn't go to zero).

As for the P values set to 1, I have no idea - I just noticed that that worked. Your problem doesn't say what to do about the sines, but somehow they disappear.

The d_1 is in the third equation in your post - perhaps it is a typo? or something else about the problem?

In terms of solve, there are 3 equations, so I always choose which 3 variables to solve for. In your set 1 answers, you had a[1]=a[1], meaning a[1] can be anything and the others can be in terms of a[1]. So for set 1, I left out a[1].

In your set 2 answers, there is a[2]=a[2], so I left out a[2], but it didn't work. 

In general solving 3 equations for 4 unknowns won't give anything, but if it does (as here) you don't get to choose what depends on what. Here there is some dependence between the variables that I didn't think about, but which has something to do with why set 2 didn't come out as I expected.

@robertocooper The initial or boundary conditions are determined by the physical problem, and the solution depends on them, so you need to know them for your case. Here I plot for U(0)=0, D(U)(0)=1.

PDE2.mw

 

@robertocooper The solution still has two unknown constants _C1 and _C2, whose values can only be found if you specify two boundary/initial conditons, e.g. U(0)=0, D(U)(0)=1. Then plots can be made, but since the PDE solution is complex what exactly do you want to plot?

This is hard to diagnose unless you upload a .mw file that illustrates the two results. Use the fat green up-arrow, choose the file and upload with "insert link".

@jat741 unapply turns a result you already have into a function, which you can then use for plots etc. In general you should not cut and paste from output to input or retype results.

PDEPlot.mw

@robertocooper I missed the point that the eqn for v was to be derived from the imaginary part, and have added an edited version transform4.mw to my answer above. In your second example, you divided by exp(I*mu), but that left you with a mix of old and new variables. I tidied it up a bit. (I usually leave off the =0 in eqns since dsolve, solve etc understand this as default, and then I do not have to worry whether various simplifications apply automatically to both sides of an eqn or not.)

For the subs, I'm not sure if you are asking a mathematical or Maple question. For the mathematical question, abs(z) is the magnitude of the complex quantity z=r*exp(I*theta), i.e., abs(z)=r. From the Maple point of view, using subs does a substitution without doing any simplification, i.e.,  just syntactic substitution. I didn't want any attempt to try to apply diff to abs. More usually I would used eval(expr,a=b) rather than subs(a=b,expr) since it is smarter about math things. But here eval messed with the PDE too much. 

newcode2.mw

Use I for sqrt(-1) in Maple (or use interface(imaginaryunit=i) to change the default). To force evaluation to real and imaginary parts use evalc. I assumed everything was positive, but you can use some other assumptions if that is not right, You can get simpler forms using simplify, but the abs() is problematic here, 

transform.mw

Providing an approximate solution with the approxsoln option often works here - it can be anything with approximately the right shape, but you have to know something about what you expect.

@dharr I realised that the Q value is intended to select the right phase; the Maple help and coolprop website are not very clear on this.

So this is a better way to do this (worksheets not displaying these days):

Thermo.mw
 

 

@Ronan I edited my original answer with an improved code. Your code agreed with the Matrix. This may be useful in my work, so thanks for introducing me to the Boole-Mobius transform.

@Carl Love  To get the same output as Ronan I needed to switch jm and h in the updates line to become:

(im, istep, h, jm):= Scale2~([im, istep, h, jm], [-1$3, 1])[]

Not sure if this affects speed because I know modular was updated after the version I have (2017)
 

@Ronan I usually use Compiler:-Compile when I'm debugging, since there are many limitations about what Maple code can be compiled, but once I know it does compile then you can just add option autocompile after the proc() and the compiling will be automatic on first execution (and so the procedure can be used in a module or package, and the dll will be generated automatically). 

@student_1 Yes, fracdiff(v(t), t,0) gives t but fracdiff(v(t), t,0.) gives 0. The solution is to use seq(fracdiff(v(t), t,alpha/2),alpha=-2..3)

First 48 49 50 51 52 53 54 Last Page 50 of 71