zoukankan      html  css  js  c++  java
  • Maple重点知识总结

    Maple中的evalf与evalhf

    evalf

    • 可作用于单值
    • 可作用于List
    • 可作用于Set
    • 可作用于Vector(<..>)
    • 可作用于Matrix(<..|..|..>)

    evalhf

    • 可作用于单值
    • 可作用于Vector(<..>)
    • 可作用于Matrix(<..|..|..>)
    • 可作用于List
    • 可作用于Set

    Maple编程中的经常使用的參数限定

    positive      正数
    negative     负数
    negzero     0或负0
    poszero     0或正0
    integer      整数
    nonnegint  非负整数
    nonposint  非正整数
    negint       负整数
    posint       正整数



    Maple中的嵌套编程

     
    Maple中也可嵌套编程。求一个阶乘吧。
    f := proc (k::nonposint)
        if 0 < k then
            return f(k-1)*k;
        elif k = 0 then
            return 1;
        end if;
    end proc;

    就可以。





    Maple学习: 函数的高速定义

     

       函数与过程的定义通常是使用proc...end proc来定义,但在定义较为简单的函数时。Maple提供了更为便捷的方式。

    比如:

    • 无參数
      定义过程:      f:=()->"这是一个无參数函数定义";
      调用过程:      f();
    • 单參数
      定义过程:      f:=(x)->x^2+x+1; 或 f:=x->x^2+x+1;
      调用过程:      f(2);
    • 多參数
      定义过程: f:=(x,y,z)->x^2+y+z;
      调用过程: f(1,2,3);

    另外,"->"后面的表达式能够是if语句(在if语句中可嵌套其它的语句)。比如:
    定义过程: f:=(x,y,z)->if x > 0 then x^2+y+z else x+y+z end if;

    调用过程: f(1,2,3);
               或   s:=1,2,3;  f(s); # s为表达式序列
      

    參数表中也可指定參数的类型。



    Maple中查看某些系数函数的代码

    Maple的大部分系统函数是用Maple语言编写的。仅仅有Maple内核的函数是用其它语言编译完毕的。我们能够使用Maple命令来查看系统函数的函数体,从而能够參考其编写方式,当然内核函数的函数体是看不到的。

     

    首先执行: interface(verboseproc = 2);

    再执行: print(sin);

    则能够看到sin函数的代码.

     

    另外假设是我们自己写的函数, 我们直接用print(函数名)来查看.

     

    Maple中查看某些系数函数的代码



    Maple其中的三种引號

     
    1. 双引號(double quote symbol, "): 表示字符串的定界符
      > str := "This is a string";
                             "This is a string"
    2. 右单引號(right single quotes, ' '):  表示非赋值表达式或是延迟表达式的求值
      > x := 2; y := 3;
      > f := x+y; g := 'x+y'; 'f'; f;
                                     5
                                   x + y
                                     f
                                     5
      > a := 1;
                                     1
      > ''a'';
                                    'a'
      > 'a';
                                     a
      > a;
                                     1
      > '2';
                                     2
      > dependent := 2;
      type(s, 'dependent({s, t})');
                                    true
      > type(s, dependent({s, t}));
                                   false
      > x := 5;
                                     5
      > x := 'x';
                                     x
      > x;
                                     x
    3. 左单引號(left single quote symbol , `)
      * 一对(` `)之间的字符串序列能够形成一个name
      * 对于一个合法的Maple的name, 加不加(` `)效果是一样的
      * 对于保留字, 加了(` `)之后能够成为name, 不加的话则不能够. 这在type里面用的挺多的
      > `This is a name!` := 1; # 加了(` `), 成为name
      > `This is a name!`;
                                     1
      > type(m+n, +); # +没有加引號, 当作运算符或保留字处理
      > type(m+n, `+`); # +加引號, 当作name处理
                                    true
      >a, `a`; # a是Maple中一个合法的name, 加不加引號效果一样
                                    1, 1







  • 相关阅读:
    关于lockkeyword
    关于多层for循环迭代的效率优化问题
    Android 面试精华题目总结
    Linux基础回想(1)——Linux系统概述
    linux源代码编译安装OpenCV
    校赛热身 Problem C. Sometimes Naive (状压dp)
    校赛热身 Problem C. Sometimes Naive (状压dp)
    校赛热身 Problem B. Matrix Fast Power
    校赛热身 Problem B. Matrix Fast Power
    集合的划分(递推)
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6727124.html
Copyright © 2011-2022 走看看