nm

11378 Reputation

20 Badges

13 years, 43 days

MaplePrimes Activity


These are questions asked by nm

I am trying Maple 2017 pdsolve for heat PDE in 1D. It seems Maple can solve now  heat PDE with homogeneous dirichlet boundary conditions (good). But when I set the boundary conditions to homogeneous neumann B.C. instead, I get an answer when this B.C. is prescribed to the left side. When this B.C. is on the right side, I get an error. Which is strange.

I am newbie in Maple, so may be I am doing something wrong in the syntax?  In addition, the answer I get when homogeneous neumann B.C. is on the left side, does not match my hand solution, which I know is correct. I'll show this below.

First, here is the case where it works. homogeneous dirichlet boundary conditions on both sides:

restart;
pde:=diff(u(x,t),t)=k*diff(u(x,t),x$2);
bc:=u(0,t)=0,u(L,t)=0;
sol:=pdsolve([pde,bc]) assuming 0<L:

This answer is correct. Now when setting the right side to homogeneous neumann B.C. I get an error

restart;
pde:=diff(u(x,t),t)=k*diff(u(x,t),x$2);
bc:=u(0,t)=0,D[1](u)(L,t)=0;
pdsolve([pde,bc]) assuming 0<L;

I think may be it does not like `L` there in the B.C. But how else to tell it this B.C.? The above is the only syntax I know. And finally, when using homogeneous neumann B.C. on the left side, I get this result

restart;
pde:=diff(u(x,t),t)=k*diff(u(x,t),x$2);
bc:=D[1](u)(0,t)=0,u(L,t)=0;
pdsolve([pde,bc]) assuming 0<L;

The correct answer for this B.C. is

The answer should be series solution as well with eigenvalues. I think if I expand Maple solution in series may be I will get it to match my hand solution. I need to look at this more later.

my question is: Why do I get an error when homogeneous neumann B.C. is on the right side but not on the left side?

I suspect I am not entering the B.C. correctly? If so, How does one enter homogeneous neumann B.C. for this 1D heat PDE?

 

I am learning pdsolve in Maple. When I try to solve a diffusion pde, I get this strange error message, and I do not understand what it means: This is using Maple 2017 on windows 7

restart;
bc:=f(t,0)=0,f(t,1)=1;
ic:=f(0,x)=piecewise(x=0,1,0);
pde:=diff(f(t,x),t)=diff(f(t,x),x$2);
pdsolve({pde,bc,ic},f(t,x));

The error is

Error, (in casesplit/K) this version of casesplit is not yet handling the function: piecewise

Am I writing the initial conditions (ic) wrong?  Maple help shows nothing on this. I think Maple does not like my initial conditions. But do not know how to correct it now.

What causes this error?

 

 

I can't figure how to use the showsource() command. There are no examples given.

kernelopts(version);
Maple 2017.0, X86 64 WINDOWS, May 17 2017, Build ID 1231047

If I use it on a local proc() it gives an error. Since it needs a file name

f := proc(x) if x <= 2 then print(x); print(x^2) end if; print(-x); x^3 end proc:
showsource(f);

Error, (in fopen) file or directory does not exist

From help:

The showsource command is similar to showstat, but displays the original 
source code corresponding to the requested statements, if that source 
code is available and, in the case of procedures retrieved from 
libraries, kernelopts(keepdebuginfo) is true. If source code is 
not available, showsource raises a warning and then produces 
the same output as showstat.

But there is not one single example of how to use this command. I tried it on a local file (.mpl) in the same folder, but it complained.

restart;
currentdirName :="C:\\bla\\bla";
currentdir(currentdirName);
showsource("maple_proc.mpl");

Error, invalid input: showsource expects its 1st argument, p, 
to be of type {`::`, name}, but received maple_proc.mpl


If I try

showsource(int);
Warning, no source information available; using showstat instead

Just looking for an example on how to use this command. (why help does not show an example?)

 

 

 

Sometimes when one write a proc(), and later make changes, some of the earlier local variables could no longer used after the new edits.

In a small proc, it is easy to spot visually which ones are no longer needed and to remove them. But for a large proc() with many local variables, it is harder.

Does maple have a tool  to help one find which are the unused local declarations are not used? For example

foo:=proc(x)
local y,z:
x^2;
end proc;

I'd like maple to tell me that `y` and `z` are unused when I asked it to. (may be by highlighting or warning)

Mathematica has such a tool (and more) in its workbench editor which is very useful. does one need an external tool in Maple to do this?

http://www.maplesoft.com/applications/view.aspx?SID=1526&view=html

near the middle, it says

I just tried in Maple 2016 and that is not what it did. It says this was in Maple 8. It seems this was "fixed" in Maple 2015.

My question: How could Maple 8 have simplified rand()/rand() to 1 before evaluating rand()?  i.e. why was not rand() evaluated first, before the simplification was made? it seems to have worked as if one typed x/x , but rand() would have been a function, and it should be evaluated before?

Just wondering why Maple 8 did the above, that is all.

 

 

First 168 169 170 171 172 173 174 Last Page 170 of 200