MaplePrimes Questions

Hi I was hoping if someone could mark this proof for a lemma regarding the Euler totient functin for me.

 

Thanks in advance.

 

totient_lemma_proof.mw

How am I going to evaluate function like this ? I tried signum evalf, eval and solve, they dont work

I am working on problems in identifiability and I am interested in how many Lie derivatives of two kinds are required to get a full result for a simple system, and more interestingly a way of visualising what comes out when too few Lie derivatives are used. 

The method is simple, I use Lie derivatives my own program GTS2 to get relationships that must be conserved for the output for two parameter vectors to give the same output (you can find it along with everything else for this question here.

An example of a list of parameter relationships is: 

[{R = R, Rh = Rh, alpha = alpha, C[T] = C[T], Ch[T] = Ch[T], k[a1] = -(k[a2]*C[T]*R-kh[a1]*Ch[T]*Rh-kh[a2]*Ch[T]*Rh)/(R*C[T]), k[a2] = k[a2], k[d1] = k[d1], k[d2] = k[d2], kh[a1] = kh[a1], kh[a2] = kh[a2], kh[d1] = -(k[d1]*x[2]-k[d1]*xh[1]-k[d1]*xh[2]-k[d2]*x[2]+kh[d2]*xh[2])/xh[1], kh[d2] = kh[d2], x[1] = -x[2]+xh[1]+xh[2], x[2] = x[2], xh[1] = xh[1], xh[2] = xh[2]},{...},{...}]

i.e. they will show that there are multiple relationships that satisfy the Lie derivative conditions (each relationship is in a seperate set within the list) and within each set some parameters can vary freely (like R and Rh in the above) and others are determined by the ones that vary freely (like k[a1] and kh[a2]).
 
I want to count the numbers of parameters that have their relationships determined in three different ways so i can plot these numbers as the numbers of both types of Lie-Derivatives vary. These numbers are:
 

  1. N_i number of identifiabile parameters; parameters that in all solutions are of the form {p=ph or ph=p}
  2. N_l number of locally identifiable parameters; parameters that in all solutions take either the form {p=ph or ph=p} or {p=some function of the parameters with hs at the end of their names or ph=some function of exclusively the parameters without hs at the end of their names}
  3. N_u number of unidentifiable parameters; parameters that are neither identifiable or n locally-identifiable. 

    I think its nice to have a link to a worksheet at the end of a question, so here_it_is_again.

Acknowledgement: most of the code in the above was based on snippets written by @Carl Love in response to my previous questions.

EDIT: I had some teaching to do, so uploaded the question early as i was writing in a computer room- as a result the maple worksheet I originally included was confusing, the worksheet I've included in this edit is much easier to understand.

TLDR: i am looking a way to count the numbers of outputs of various types from a program that is built around maples solve feature, and stuck

f := proc (y) options operator, arrow; -(1-tanh(y-.25)^2)^2+2*tanh(y-.25)^2*(1-tanh(y-.25)^2) end proc;
g := proc (y) options operator, arrow; (2*cosh(y-.25)^2-3)/cosh(y-.25)^4 end proc;

f(10);
                                      -8
                        2.719999946 10  
g(10);
                                      -8
                        2.718614181 10  

g(y) is simplify (f(y)), but f(10) is not equal g(10), why?

prove that

∇ x (∅F) = ∅∇ x F + (∇∅) x F

where ∅ and F are differentiable scalar function and vector function respectively.

When a child proc calls a parent local proc using parent_module:-parent_proc(), Maple gives an error. But when the child calls the parent local proc using just parent_proc() it works. Why is that?

parent_module:=module()
 
 local child_module;
 local parent_proc;

 export parent_entry;

 child_module:= module()
    export child_entry; 
    child_entry :=proc()
     #parent_module:-parent_proc(); #this fails
     parent_proc(); #this works
    end proc;
  end module;

 #local
 parent_proc :=proc()
   print("insider parent proc");
 end proc;

 #public
 parent_entry :=proc()
   child_module:-child_entry();
 end proc;
end module;

parent_module:-parent_entry();
              "insider parent proc"

but the other way, (the commented code above) gives

parent_module:-parent_entry();
Error, (in child_entry) module does not export `parent_proc`

 

Hello there!
I was wondering if there is a way we can skip one or more variables from LSSolve to be optimized on a specific value?

For exmaple, please see the following file


 

restart; with(Optimization)

[ImportMPS, Interactive, LPSolve, LSSolve, Maximize, Minimize, NLPSolve, QPSolve]

(1)

LSSolve([x-1, y-1, z-1], {-10 <= x, x <= 0, 6*x+3*y <= 1}, initialpoint = {x = -1, y = 1})

[.711111111111111138, [x = HFloat(-0.06666666666666665), y = HFloat(0.46666666666666656), z = HFloat(1.0)]]

(2)
 

 

 

 

 

``


Can I skip the value of x and just find a global minimum of the objective functions over the given range of x, not just the specific value?  Its because I need to keep x as a variable.

Download LSSOLVEparameter.mw

Bisection := proc (f, a, b, delta)

local startpoint, endpoint, midpoint; startpoint := a; endpoint := b;

do midpoint := (1/2)*startpoint+(1/2)*endpoint;

if abs(startpoint-endpoint) < delta or abs(f(midpoint)) < delta then

return midpoint

elif f(midpoint) < 0 then endpoint := midpoint

elif 0 < f(midpoint) then startpoint := midpoint

end if end do end proc

 

I'm trying to do a procedure for bisection method but it doesnt give me answer when  I type 

Bisection (x-> x + 0.001 , 1, -1, 0.001 )

it returns Bisection (x-> x + 0.001 , 1, -1, 0.001 )

why this is happening, Is it because the procedure is wrong ? or does not provide answer 

What is the difference between a divisor and a factor? Like:

with(numtheory):

X := 89733992396903316277681863138688595394562888838833;

S := map(expand, [op(ifactor(X))]):

And we have the singleton of unity for the output of:

divisors(X/(product(S[j], j = 1 .. nops(S))));

and so on:

seq(divisors(X/(product(S[j], j = 1 .. nops(S)-k))), k = 0 .. 3);

but yet if i try

divisors(X);

my computer freezes.

So yes although my friend is somewhat embarassed to not know the difference and needed me to ask for him what the difference between a divisor and a factor is. 

 

Like is it just the uniqueness? ie a factor is one of the terms in the product of a number's prime factorization, where as any number that divides the number is considered to be a divisor?

like for example i can then go:

seq(min(`minus`(divisors(X/(product(S[j], j = 1 .. nops(S)-k))), {1})), k = 1 .. 10);

X:=X/(131*(139*(151*(163*(173*167)*157)*149)*137)*127)

from the first 10 terms reducing it original number substantially to:

 17026820583257598495326242577

and carry this on i dont see why i cant end up with the divisor set that caused my computer to freeze if i just called divisors(X) as I originally did

 


 

https://www.youtube.com/watch?v=qSO2lLiDybg

with(numtheory):

X := 89733992396903316277681863138688595394562888838833;

89733992396903316277681863138688595394562888838833

(1)

S0 := map(expand, [op(ifactor(X))]);

[31, 47, 59, 61, 67, 71, 73, 79, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173]

(2)

P := convert([seq(min(`minus`(divisors(X/(product(S0[j], j = 1 .. nops(S0)-k))), {1})), k = 1 .. 15)], '`*`');

72255473008151934648648475807453

(3)

S1 := divisors(X/P):

seq(`mod`(X, S1[k]), k = 1 .. nops(S1))

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

(4)

``


 

Download what_the_fook.mw

I am writing a code which for various discrete x values needs to import from a pre established file,  values of f(x), which must be used for the present calculation, then forgotten. Is there any way I can set this up in Maple? If so I would be much obliged to learn how to do it. I have ~100 data pairs (x,f(x)), with no formula. 

Thanks in advance

David. 

I encountered a bug in a combination of simplify and Int. A minimal example is given by the following commands (code attached in file bug.mw):

 

restart:
# simplification bug: first result pulls r out from under the dr integration
integrand := r;
simplify(Int(integrand, phi = 0 .. 2*Pi, r = 0 .. 2));
simplify(Int(integrand, r = 0 .. 2, phi = 0 .. 2*Pi));
simplify(Int(integrand, r = 0 .. 2));
simplify(Int(integrand, phi = 0 .. 2*Pi));

give a wrong result at the first simplify, whereas the others work correctly. It seems that simplify only checks the first integration variable when deciding whether to pull out the factor r from the integral.

 

As Maplesoft does not advertise a dedicated bug report email/site I post it here. If there is one, where can one find it?

Cordially,

  htc

 

 

 

 

I want to animate Fourier Series of Example 1 in the link as follows.

I know that Maple already includes Fourier transform and series package. But I want to write a code from the beginning As if the packages never existed. You can find my try in this link (fourier.mw)

Can you help me for finishing the code?

Thanks.

 

 

We create a lot of Maple documents, and would like an efficient way to share data amoung documents. Some documents rely on the results of other Maple documents.

I have experimented with DocumentTools:-Retrieve. There is an example in the help pages for this that I can run, but for some reason I don't understand, the example uses "L6" as the label for expression to retrieve. In the document referred to, the label is (1).  I can't find L6 is the document, and the example doesnt work with label set to "1". So is there some method to set a label that DocumentTools:-Retrieve uses? If we could create meaningful lables, perhaps that would be a good method for us.

I can see that I can also use the menu option insert>reference and get an expression from another document. I assume that this is a one-time insert. If the value changes on the source document, there is no way to update. There is also nothing shown in the worksheet to show where the expression came from, so unless you add comments, there is no tracability.

Another similar question:

We may have a group of related documents. We would like to have each document be able to export data to a central file (or database?) What is the best way to do this? I could use ExcelTools:-Export  and assign each document a tab or address in the central file. Is there a better way?

Thanks.

Mike

 

 

my main module is getting big. I want to break it to main module, and submodule. But now everything is in the same .mpl file. I'd like to put the sub module in seperate mpl file. I do not know the syntax to do this and how to do it. I looked at the programming guide chapter 8.

Currently in main_module.mpl, lets say I have this

main_module:=module()
 option package;
 local C; 
 local sub_module;
 export main_entry;

 C:=99; #see if this can be "seen" from child module

 sub_module:= module()
    export main_entry;
    main_entry :=proc()
     print("In main_module:-sub_module:-main_entry(), C=",C):
    end proc;
  end module;
 
 main_entry :=proc()
   print("in main_module:-main_entry()"):
   sub_module:-main_entry();
 end proc;
end module;

Now main_module:-main_entry(); gives

                 "in main_module:-main_entry()"
       "In main_module:-sub_module:-main_entry(), C=", 99


I'd like to move the code of the submodule to another .mpl file. So I end up with two files, like this

# main_module.mpl
main_module:=module()
 option package;
 local C; 
 local sub_module;
 export main_entry;

 C:=99; #see if this can be "seen" from child module

 main_entry :=proc()
   print("in main_module:-main_entry()"):
   sub_module:-main_entry();
 end proc;
end module;

And

#sub_module.mpl
sub_module:= module()
    export main_entry;
    main_entry :=proc()
     print("In main_module:-sub_module:-main_entry(), C=",C):
    end proc;
 end module;

But when I do this, I can't call main_module:-main_entry(); since it gives error

Error, (in main_entry) `sub_module` does not evaluate to a module
I do not want to make sub_module a separate package. I want it to remain a sub module for the main module, so it can only be seen by the main module and no one else.

So logically sub_module is a child of main_module, but physically I want to put them in separate files to make it easier to modify.

I use plain text files for everything and use Maple to load the packages and test.

How does one go about doing this? How would this be done for the above example?

 

I tried $include "sub_module.mpl"; but it gives error.

main_module:=module()
 option package;
 local C; 
 local sub_module;
 export main_entry;

 C:=99; #see if this can be "seen" from child module
	
 $include "sub_module.mpl";

 main_entry :=proc()
   print("in main_module:-main_entry()"):
   sub_module:-main_entry();
 end proc;
end module;

Where the file "sub_module.mpl" contains the code for the submodule I want to insert at that location. When I read "main_module.mpl" Maple gives error

read "main_module.mpl";

Error, on line 10, syntax error, unexpected string:
 $include "sub_module.mpl";

This is too advanced for me. I am still learning module and package use in Maple.

thanks

I am attempting  to show that ocean wave B has a larger velocity than ocean wave A, because wave B has a longer wavelength.


 

I considered the displacement of two particels located at the peak of each wave at time = 0.  Differentiating the two displacement functions I determined the velocity function for each particle.  I used a sequence to determine the velocity for each particle over the time interval 1 to 20 seconds (integer).  The following syntax produces the information I need but I would like to format it as 3 columns in 20 rows, how could I edit the following syntax to do that?

restart;
R := {seq([t, evalf(-sin(t)), -.5*sin(.5*t)], t = 1 .. 20)};

This sequence prints 20 lists of t, evalf(-sin(t)), -.5*sin(.5*t)

What do I need to do to print 3 columns in 20 rows?

The first 3 rows would look something like

1 -0.84147 -0.23971
2 -0.9093 -0.42073
3 -0.14112 -0.49874

I am trying to show that two ocean waves of equal amplitude but different wavelenghts have different velocities and the wave with the largest wavelength will have the greatest velocity.    If someone has a suggestion about how to show this using SHM, any advice welcomed.

Les

 

First 813 814 815 816 817 818 819 Last Page 815 of 2427