Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Hi,

I want to apply a rule to simplify an expression. The applyrule command works, when used directly in the worksheet. When I try to use the command within a procedure, Maple throws an error I cannot decipher:

Error, (in PatternMatching:-AlgStruct:-InsertPattern) first operand of `::' must be a name

 

Here is a full demonstration worksheet:

restart:

anexp:=abs(x)^2;

abs(x)^2

(1)

simplify(anexp);

abs(x)^2

(2)

rmabssq := proc(inexp)
description "removes the abs^2 construct in an expression":
local ruleabssqared1,ruleabssqared2,outexp:
    ruleabssqared1:= abs(''a''::algebraic)^2= ''a''^2:
    ruleabssqared2:= abs('expand'(-''a'')::algebraic)^2= ''a'':
    outexp:= applyrule([ruleabssqared1,ruleabssqared2],inexp):
    return outexp:
end proc;
 

proc (inexp) local ruleabssqared1, ruleabssqared2, outexp; description "removes the abs^2 construct in an expression"; ruleabssqared1 := abs(''a''::algebraic)^2 = ''a''^2; ruleabssqared2 := abs((('expand')(-''a''))::algebraic)^2 = ''a''; outexp := applyrule([ruleabssqared1, ruleabssqared2], inexp); return outexp end proc

(3)

## does not work :(
rmabssq(anexp);

Error, (in PatternMatching:-AlgStruct:-InsertPattern) first operand of `::' must be a name

 

## works!
ruleabssqared1:= abs(''a''::algebraic)^2= ''a''^2:
ruleabssqared2:= abs('expand'(-''a'')::algebraic)^2= ''a'':
newexp:= applyrule([ruleabssqared1,ruleabssqared2],anexp);

x^2

(4)

 


 

Download applyrule_4.mw

Thanks for your help

Hello,

i have a vector-valued function mapping from R^n  -> R^m
I  compute its Jacobian Matrix as well as the Hessian Matrix of each output with regard to the inputs, which works so far.
Now I would like to use the CodeGeneration package to generate optimized C Code to compute these matrices numerically. This is, where i encounter a Problem:

I would like to optimize Code for all matrixes at once, because they contain common subexpressions. However CodeGeneration::C tells me it is unable to optimize the given input and generates unoptimized code.


I appended an exemplary file to illustrate the problem: Jacobian_Hessian_codeGeneration_tryout.mw

short version:

C(Jac, optimize = tryhard, resultname = JacobianMatrix);
C(H1, optimize = tryhard, resultname = Hessian1); 
C(H2, optimize = tryhard, resultname = Hessian2); 
C(H3, optimize = tryhard, resultname = Hessian3)

works, but is suboptimal.

C([JacobianMatrix = Jac, Hessian1 = H1, Hessian2 = H2, Hessian3 = H3], optimize)

fails to optimize and

C([Jac, H1, H2, H3], optimize)

fails completely.

(With Jac beeing a m by n matrix and H1-3 beeing n by n matrices)

If anyone can tell me what I'm missing here I'd really appreciate the help.

Hi guys ,

Actually i dont know how to solve the following complicated differential equations by numerical methods ,

numerical.mw

 

Thank you for your attention to this matter

Dear friend,

please suggest a way for manipulation of derivative of a function symbolically. Assume

Typesetting[Suppress]([f(x)]);
Ex1 :=expand(diff(f(x+y)+x*f(x-y), x)^2)+expand(diff(f(x-y)-y*f(x+y), x)^2);

Result is as needed:

Ex1 := (D(f))(x+y)^2+2*(D(f))(x+y)*f(x-y)+2*(D(f))(x+y)*x*(D(f))(x-y)+f(x-y)^2+2*f(x-y)*x*(D(f))(x-y)+x^2*(D(f))(x-y)^2+(D(f))(x-y)^2-2*(D(f))(x-y)*y*(D(f))(x+y)+y^2*(D(f))(x+y)^2

But later I cannot use D(f) as a function. Expressions

subs((D(f)) = (t -> 1-t), Ex1);
subs(diff(f(x),x) = (t -> 1-t), Ex1);

do not handle it as a function.

Maple 16 code

 

N1 := FileTools[Text][CountLines](g)

I encounter an error message

in FileTools:-Text:-CountLines) permission denied

What  went wrong ?  This never happened before

I  re install  Maple 16, the same error persists.

 

Please help

Martin
 

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?

 

how can I sort a diff EQ by its degree.  Example 4th order with 4 being farthest left in normal reading format?

 

D4 + D3 + D2 +D + C = F(t)

 

my equation display is currently:

C + D + D2.......

Thanks,

Bill

Can I force Maple to solve the 2 variable recurrence from this page:

https://mathoverflow.net/questions/182188/limiting-probabilities-for-two-player-game-drawing-random-uniform-numbers?rq=1

How can I do that? Can I obtain a closed form from Maple?

I'm not quite sure how I should put this and the title might be a bit misleading. Basicly when I use variables which I have defined with a value I would like for the equation to be shown with the values of the variables before the results. Not sure if that made sense so I made this picture.

Basicly when I write as in line (1) it just gives me the result, which is fine but I'd like it converted too if that makes any sense as in line (2). I made line (2) myself (just changed the colour of standard mathtype). I'd like the calculations to be shown as in line (2) where first you see the formula: lambda=v/f, then it inserts the values of the variables and finally calculates this. Is there any way to do this?

I couldn't really find anything in the manual or using google.

Regards, Simon

 

  Assume that one has an equation P(a,b,c,d,e,f)=0. How do we solve this equation so that the parameters b and c are in terms of a, and the parameters d and e in terms of f?

hello . how can i get 7 given parameters(b1,a1,b1,a2,b2,.....) in this equation with maple. thanks

 

 

 

1.mw

Imagine we have an ODE system 

odeSys := {diff(x(t),t$2)+diff(x(t),t)+x(t)=f(t),diff(y(t),t$2)+2*diff(y(t),t)+3*y(t)=g(t)};

It is easy to transform this system into a first order form by hand. But for larger systems, the procedure by hand becomes very error prone. Is there an intelligent way to transform a system of n scalar ODEs (order m) into a first order system? I know that the first order form is not unique. It is only important to reduce the system to a system of first order equations.

 

Hi,

this forum has helped me a lot since I'm quite new at maple. There are lot of questions about the solution of _Z in roots but I still can't figure it out.

Here my problem:

f(x,y)= x*y - (V^(alpha)*W)/(V-a*x-b*y)^alpha

x>0, y>0, a>0, b>0, alpha>0, V>0, W>0, V-a*x-b*y>0

I need to find the maximum values for x and y. But all the solutions have got _Z.

How can I eliminate _Z? Thanks!

Best regards,

Won

 

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?

 

 

Hello.

I am asked to find all the candidate points to absolute maximum or minimum in a domain delimited by several lines or curves.

Let me show you an example:

I am having trouble trying to find the candidate points on the boundary of the domain with LagrangeMultipliers.

How should I express the line or curve equations so that I can use them as constraints of LagrangeMultipliers? Should I use another method?

Thanks a lot.

First 950 951 952 953 954 955 956 Last Page 952 of 2215