Unanswered Questions

This page lists MaplePrimes questions that have not yet received an answer

Other than saving few bytes of memory, why would one use ::static for methods of Object?

I found that if I use ::static, then I have to add prefix _self:- each time an object data member is referenced anywhere, making the code very hard to read.

Imagine having to write  _self:-x + 3* _self:-x^2 + 2* _self:-y^3 and so on all the time, instead of just x+3*x^2+2*y^3. (where it is assumed here that x,y happened to be object private data members and not local variables for a proc inside the module).

But then I found if I remove  ::static now _self:- no longer needed and can still get the benefit of using the object and the code works as before, but the code is now much more readable. 

I know that by not using static, then a copy of each method is made for each new object.

I am OK with that. As I do not use that many objects any way (few at a time before GC cleans the ones I used).

But the benefit of much more readable code far outweights the little extra memory needed, and memory is cheap these days anyway. I got lots of RAM. An extra few MB's is not a big deal.

What Am I missing here? Why does all the Maple help and documenation say that one should use static for object methods then? But do not mention that by not using static:: then the code will become more readable since _self:- is not needed to be appeneded to each variable or method name.

Here is an example below to compare. 

First example uses ::static methods, and the second does not.

One can see the difference The code is more clear in the second.   Is there something else I am overlooking by not using ::static . I am still learning OOP in Maple, and could be overlooking something else. I definitly do not want to code using _self:-variable_name all the time if I have to use OOP in Maple as it makes the code hard to read. 

Notice that in both examples, and for the exported methods, I used _self as first argument. This is OK. This is meant to allow client of the object to call it using object:-method() syntax which is what I prefer instead of method(object,....). syntax.

I am talking about the execssive use of _self internal to the module/object code when having to use ::static. methods.

restart;

person_class_STATIC:=module()
   option object;
   local age:=5;   

   export set_age::static:=proc(_self,age,$)      
     _self:-age:=age:
   end proc:      

   export update_age::static:=proc(_self,age,$)      
      do_the_update(_self)
   end proc:      

   local do_the_update::static:=proc(_self,$)
      _self:-age:=_self:-age+1;
      _self:-age:=sqrt(_self:-age^2+3);
   end proc;

   export get_age::static:=proc(_self,$)      
     return _self:-age;
   end proc:      

end module:

o:=Object(person_class_STATIC);
o:-set_age(100);
o:-get_age();
o:-update_age();

o2:=Object(person_class_STATIC);
o2:-get_age();

_m1982588380672

100

100

2*2551^(1/2)

_m1982698669216

5

person_class_NO_STATIC:=module()
   option object;
   local age:=5;   

   export set_age:=proc(_self,_age,$)      
     age:=_age:
   end proc:      

   export update_age:=proc(_self,$)      
      do_the_update()
   end proc:      

   local do_the_update:=proc()
      age:=age+1;
      age:=sqrt(age^2+3);
   end proc;

   export get_age:=proc(_self,$)      
     return age;
   end proc:      

end module:

o:=Object(person_class_NO_STATIC);
o:-set_age(100);
o:-get_age();
o:-update_age();

o2:=Object(person_class_NO_STATIC);
o2:-get_age();

_m1982698652256

100

100

2*2551^(1/2)

_m1982698629312

5

 

Download OOP.mw

Hi, I'm trying to solve auxilary equation to find its familes but I don't know what I'm doing wrong as I'm using following code:

famtemp := (diff(z(xi), xi))^2-a*z(xi)^2-b*z(xi)^3-c*z(xi)^4;

fam1 := simplify(`assuming`([dsolve(famtemp)], [b::real, a::real, c::real, -4*a*c+b^2 > 0, a > 0]))

I want to get the following family:

fam1 := 2*a*sech(sqrt(a)*xi)/(sqrt(-4*a*c+b^2)-b*sech(sqrt(a)*xi));

I hope someone will help me to solve it.

Thanks

HOW TO DECIDE THE TRIPLE INTEGRAL IS POSITIVE, NEGATIVE OR ZERO WITHOUT CALCULATING IT?

Hey guys,

How can I create a bar chart or a column chart, with specific x values under the bars.

Would be great If someone could help me.

Thank you;) 

Is there some basis containing polynomials of the form x[1]^p*x[2]^q+x[2]^p*x[3]^q+x[3]^p*x[1]^q, (p,q posint)?
Are there known relationships between these?

Note: these are not the symmetric polynomials.

I want to arrange this equation in term of powers of x and then plot the  real and imagenery part of x vs y. How can I do this with Maple?
1-alpha*((1/x^2)+(1/(x-y)^2)+(1/(x+ay)^2))=0;

1.mw     (alpha and a are constant, for example alpha=1 and a=0.3)

Does anyone by any chance know why I might be getting this error?

I'm working with polynomials that have coefficients with many digits (16).

Thank you in advance,

Who deleted my post - "How to factor out specific parts from expression"

Hi,

I want to solve system of  PDE equations by maple and i dont know how can i write it codes that can solve them for me. Can anyone help me please??!!

 

So I just noticed that if you want to animate something in real time, the best you can achieve is something close but not exact.

For example lets say we have a ball travelling 22 m/s over 1000 m and I want to animate that in real time. 

ball := proc(x, y) plots[pointplot]([[x, y]], color = blue, symbol = solidcircle, symbolsize = 40); end proc:
animate(ball, [22*t, 0], t = 0 .. 1000/22, frames = floor(1000/22));

frames has to be an integer value so determining how long it will take and adjusting the frames to 1 frame per second.  It requires a bit of manipulation to get it right.  Is there a better way?  I suppose boosting the frame rate and increasing the number of frames would work but then it becomes cumbersome and any large period of times would use a high number of frames and consume enormous amounts of memory. 

Every time I open Maple it has the invitation to Login in the top right-hand corner.  I would like to sign in but have had quite a bit of trouble doing that.  I have a user name and password with Maplesoft web store and the same for MaplePrimes.  Should either of these work to log in? 


 

with(plots); with(LinearAlgebra)

NULL

NULL

NULL

couples := [5, 0], [6, 0], [6, 3], [10, 3], [7, 5], [9, 5], [7, 7], [8, 7], [5.5, 9], [3, 7], [4, 7], [2, 5], [4, 5], [1, 3], [5, 3]

Points := Matrix([[5, 6, 6, 10, 7, 9, 7, 8, 5.5, 3, 4, 2, 4, 1, 5], [0, 0, 3, 3, 5, 5, 7, 7, 9, 7, 7, 5, 5, 3, 3]])

NULL

Homothety

 

W := Matrix(2, 2, {(1, 1) = (1/60)*k, (1, 2) = 0, (2, 1) = 0, (2, 2) = (1/60)*k})NULLNULL``NULLNULL

Rotation on x axis

 

NULL

X := Matrix(2, 2, {(1, 1) = cos((1/90)*Pi*k), (1, 2) = sin((1/90)*Pi*k), (2, 1) = sin((1/90)*Pi*k), (2, 2) = -cos((1/90)*Pi*k)})````NULLNULL

Rotation of angle k

 

Y := Matrix(2, 2, {(1, 1) = cos((1/180)*Pi*k), (1, 2) = -sin((1/180)*Pi*k), (2, 1) = sin((1/180)*Pi*k), (2, 2) = cos((1/180)*Pi*k)})NULLNULLNULL

``

n := Multiply(Y, Multiply(X, Multiply(W, Points)))

_rtable[18446746437110297774]

(3.1)

NouvCouples := seq([n[1, i], n[2, i]], i = 1 .. 15)

Sapin := animate(polygonplot, [[NouvCouples], color = "ForestGreen"], k = 0 .. 180)

 

 

NULL

Neige

 

PointsNeige := seq([-30+i, 30-(1/2)*j*sin(i+j)], i = 0 .. 60); neige := animate(pointplot, [[PointsNeige], color = black], j = 0 .. 60, view = [-30 .. 30, 0 .. 30])

 

NULL

display([Sapin, neige], scaling = constrained)

 

NULL

NULL


 

Download Homework.mw

 

Hi, i need some help for a homework.

Here is the statement

You must first animate a series of linear transformations on the polygon formed by the following couples: [5, 0], [6., 0], [6, 3], [10, 3], [7, 5], [9, 5], [7, 7], [8, 7], [5.5, 9], [3, 7], [4, 7], [2, 5], [4, 5], [1, 3], [5, 3] It will be necessary to make, at the same time, a rotation around a line making an angle k with the axis of x, a rotation of an angle k and a scaling of variable ratio (but equal to 3 at the end animation). The k animation parameter should range from 0 to 180. I suggest you use the color green for your polygon. Then you will need to create a second animation by entering these command lines: SnowPoints: = seq ([- 30 + i, 30 - j / 2 * sin (i + j)], i = 0 .. 60): snow: = animate (pointplot, [[PointsNeige], color = black], j = 0 .. 60, view = [-30 .. 30, 0 .. 30]) : Finally, you will have to roll both animations at the same time.

The GIF shows the results that I should get according to my teacher

Thanks for the help !

In the obselote book programming examples it is using array's as data type

Is het easier to use A Vector or Matrix as datatype?

Error occurred running sample test.java (at new EngineCallBackDefault()):

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd66e7345a, pid=1740, tid=7716
#
# JRE version: Java(TM) SE Runtime Environment (11.0.1+13) (build 11.0.1+13-LTS)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0.1+13-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [maplec.dll+0x345a]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.

First 72 73 74 75 76 77 78 Last Page 74 of 362