MichalKvasnicka

219 Reputation

10 Badges

20 years, 244 days

MaplePrimes Activity


These are replies submitted by MichalKvasnicka

@nm I totally agree!!! There is someone who likes to add this tag without any comment. Is there any chance for a regular mapleprimes user to identify the author of the tag?

@nm "duplicate question" tag is simply possible to remove ... :)

Your post is another clear sign that something is really wrong with Maple development. 

The Physics project is a typical example of a "one man show" project, where everything depends on one (??!!) highly motivated person. The future of the Physics project is now really unclear, and your current personal promises about future updates do not guarantee any future development in this important area. 

Frankly, I'm not sure whether Maplesoft is now really willing and able to develop a top-notch CAS system Maple for mathematicians and theoretical physicists, or just a general-purpose computing environment, primarily for students and engineers, with all the currently very popular bells and whistles (AI, LLM, ... many other unimportant features that are completely out of interest for serious scientific use). 

In addition, the entire Maple documentation has become more and more terribly unclear, complicated and difficult to understand in recent years. With the current state of the documentation or the overall concept of Maple, it is almost impossible to learn a thorough, reliable, efficient and proven way to use Maple. The number of functions that are able to do similar things with different algorithms is constantly growing, instead of generalizing and optimizing its performance. 

So in the end, thank you very much for your efforts and enthusiasm, but in general, in my opinion, the situation with Maple as a top-notch CAS is getting worse and worse...

@nm And still obsolete Maple printed Manuals:
https://www.maplesoft.com/documentation_center/Maple2024/UserManual.pdf
https://www.maplesoft.com/documentation_center/Maple2024/ProgrammingGuide.pdf

on the page: https://www.maplesoft.com/documentation_center/

The update on version 2024 was realized in Mapesoft web with more than 2 years delay??!!
See: https://www.mapleprimes.com/questions/235970-Maple-Online-Help

@Samir Khan What is new ... regarding Maple 2023? This is a joke?

Recent state snapshot ...

https://faq.maplesoft.com/s/article/How-to-Open-the-Matlab-link-on-Ubuntu

Nearly week ago after Maple 2025 release, there are still NO On-Line help and NO Maple Manuals for Maple 2025 ?!
This is the normal way how Maplesoft celebrate the new release???

The simple and fully functional workaround is:

# Matlab obsolete libbsd fix (Ubuntu 24.04):
export LD_PRELOAD=/lib/x86_64-linux-gnu/libbsd.so.0

Next MATLAB release R2025a should solve this problem by using more recent version of libbsd directly in MATLAB.

Fact is, that new version (Ubuntu 24.04) of csh, which is required for Matlab link from Maple is not compatible with default libbsd library used by MATLAB as default (libbsd ver. 0.4.2). Ubuntu 24.04 using libbsd (ver. 0.12.1) , but MATLAB using older version included in the MATLAB release.

So, what is the proposed workaround to solve this serious trouble, in a case of using MatlLink functionality at Maple on the newest releases of Ubuntu 24.04 based Linux OS's???

@acer Yes, you are right! My end-goal is not clear.

My main intention is to find a computationally efficient form of specific 4x4 matrix exponential expFT with several input parameters (omega1, omega2, fp, fd1, fd2, lambda1, lambda2 and T), which define the input matrix F. The problem is motivated by specific requirement, that the final evaluation code must not contain general function for matrix exponential.

What about use of Maple  "codegen" with cost() and optimize functions?

Option optimize(f,'tryhard') produce impressively compacted expressions.

with(codegen, optimize, makeproc, cost, prep2trans);
optimize(expFT[1, 4], 'tryhard');

t104 = f__d2 omega__2, t93 = f__p + t104, t89 = lambda__2 t93,

                                                             2  
  t95 = f__p + f__d1, t109 = t95 lambda__1 + t89, t100 = f__p ,

                                             2    2  
  t103 = lambda__1 lambda__2, t88 = lambda__2  t93 ,

                 2           /   2              
  t97 = lambda__1 , t99 = pow|t95  t97 - 2 (t100
                             \                  

   + ((2 omega__1 + omega__2) f__d2 + f__d1) f__p - f__d1 t104)

              1\                      
  t103 + t88, -|, t108 = -t99 + t109,
              2/                      

  t90 = (omega__1 + omega__2) f__d2, t106 = omega__1 f__p,

             T                                    
  t105 = - ------, t102 = -t95 t97 t90 - (f__p t95
           2 f__p                                 

   + (3 t106 + (2 f__p - f__d1 + t90) omega__2) f__d2) t103 + t88,

  t83 = t99 + t109, t82 = (-t90 lambda__1 + t89) t99, t1 =

         1         /   /1                            
  ---------------- |16 |- (t102 + t82) exp(t108 t105)
          2      2 \   \2                            
  t99 t108  T t83                                    

     1                            
   + - (-t102 + t82) exp(t83 t105)
     2                            

                                                          \      
   + t99 (((t90 + t95) T lambda__2 + t90) lambda__1 - t89)| lamb\
                                                          /      

                 \
  da__2 t100 t106|
                 /


optimize(expFT[1, 4]);
t1 = omega__1 + omega__2, t2 = f__d2 t1,

  t5 = f__d2 omega__2 + f__p, t6 = t5 lambda__2,

                            2                 2            2  
  t8 = f__p + f__d1, t9 = t8 , t10 = lambda__1 , t12 = f__p ,

                 2          2                                   
  t24 = lambda__2 , t25 = t5 , t26 = t25 t24, t28 = (t10 t9 - 2

  lambda__1 (t12 + ((2 omega__1 + omega__2) f__d2 + f__d1) f__p

   - f__d1 f__d2 omega__2) lambda__2 + t26)^(1/2),

                                                              2  
  t29 = t28 (-t2 lambda__1 + t6), t31 = t10 t8 t2, t33 = f__d2 ,

  t45 = lambda__1 lambda__2 (t33 t1 omega__2

   + ((2 f__p - f__d1) omega__2 + 3 omega__1 f__p) f__d2

                                          1    
   + t8 f__p), t47 = lambda__1 t8, t50 = ----,
                                         f__p  

           /  1                        \                        
  t53 = exp|- - t50 (-t28 + t47 + t6) T|, t57 = t28 + t47 + t6,
           \  2                        /                        

           /  1          \                                  2  
  t61 = exp|- - t50 t57 T|, t79 = (-t8 lambda__1 + t28 - t6) ,
           \  2          /                                     

           2              1       /                      /1     
  t83 = t57 , t88 = ------------- |16 t12 f__p lambda__2 |- t53
                    t83 T t79 t28 \                      \2     

                            1                            
  (t29 - t31 - t45 + t26) + - t61 (t29 + t31 + t45 - t26)
                            2                            

                                                                \         
   + (lambda__1 (lambda__2 T (f__p + t2 + f__d1) + t2) - t6) t28| omega__1
                                                                /         

  \
  |
  /

cost(expFT[1, 4]);
221 multiplications + 119 additions + 18 functions + 5 divisions

cost(optimize(expFT[1, 4]));
32 additions + 24 assignments + 57 multiplications + 4 functions

   + 5 divisions

cost(optimize(expFT[1, 4], 'tryhard'));
26 additions + 18 assignments + 46 multiplications + 3 functions

   + 5 divisions

Any remarks, regarding this idea?

A few questions:
1. Any idea, how to transform optimze output to the final compacted expression?
2. Is possible to share intermediate variables produced by optimize process over all expFT matrix elements?

@dharr Thanks for hint to use "indets" command and other recommendations. I will try to make some additional research on this topic.

The additional conditions should be probably used not so directly, via reducing of two variables. In the matrix exponential is possible to locate terms of the following forms:

-  

which should be directly substitute by "1", but I do not know what is the proper Maple implementation.

Moreover, thera samo additional terms suitable for substitution:

-

(these two terms are mathematically identical, for example)

-  

- etc.

So finally, I am looking for some "general" symbolic approach how to find compact as possible form based on proper substitutions and additional conditions. But I am afraid, that this task could be very complex and hard, in general.

P.S. "Is the last row really intended to be zero?" ... Yes this is correct, this is standard form of tranforming procedure of the continuous LTI dynamic system by First Order Hold (FOH) approximation to the discretized form. See for example attached file: 

Gene_F._Franklin_-_Digital_control_of_dynamic_systems-Ellis-Kagle_Press_(2006)_230-232.pdf

see eq. (6.43) and (6.44). Where matrix at eq. (6.43) is my input matrix.

@Thomas Richard For example, R2023(a,b) is not fully supported, because Maple 2023.x installers are not able to locate MATLAB installation directory automatically. But, it is able for R2021 and older versions of MATLAB.

Maplesoft should follow current MATLAB versions more carefully!

@TechnicalSupport what is Maplesoft official statement regarding absence of support the latest MATLAB  version R2023b by Maple 2023?

@sursumCorda from my point of view is this situation big disappointment. Maple toolbox for Matlab was always far better than native Matlab symbolic toolbox, but now...??? It is only matter of time when the Maple toolbox will be obsolete and incompatible with recent versions of MATLAB. 

1 2 3 4 5 6 Page 1 of 6