一、命令行
sage -h: 查看常用参数 sage -advanced: 列出所有可用参数 sage -n: 直接启动notebook模式 sage -R: 运行R sage -optional: 列出可安装的所有可选包 sage -standard: 列出可安装的所有标准包 sage -i [包]: 安装所需的包,如果未给出包名称,则列出已安装包 sage -upgrade: 升级 sage: 启动sage 二、notebook 由若干个格子组成,一个格子是一个输入输出块。 1、启动 sage -n 或者启动sage后输入notebook()。 2、执行计算 多条命令输入,按enter分割。 输入完毕,按shift+enter开始计算。 3、tab补全 4、插入新格子(两种方法) 4.1 alt+enter 4.2 将鼠标移到一个格子的上边界或下边界,会出现一道粗线,点击即可 5、合并和切割格子 5.1 ctrl+enter将当前格子分为两个并分别计算 5.2 ctrl+backspace将当前格子与上一个合并 6、删除格子:backspace 7、隐藏输出结果 在结果左侧点击切换显示方式 三、符号计算 先使用var定义变量,如var('a,b,c')。 一个方程(关系表达式)可以赋值给一个变量,即用一个变量表示一个方程(关系表达式)。 如equ= y >= x^2 可以对equ进行加减乘除等运算,每一个运算都同时对关系表达式两侧进行。 注意一个关系表达式在运算前为真,有可能在运算后为假。 可以对两个关系表达式进行加减乘除,但要注意两个关系表达式的符号要相同。如: equ1= x^2+2*x+1 >= 3*x^2+x+5 equ2= x+6 >= 6*x^2+9*x 两个关系表达式都为>= 除关系表达式外,任意sage数据类型都可以参与符号运算。如: e1= (a+b+c)^2 expand(e1) M = matrix(2,2,[x,y,z,x]) v = vector([x,y]) M * v 正负无穷的表示:+oo、-oo、+infinity、-infinity、unsigned_infinity 四、符号表达式函数: n:计算近似值 Order:阶,即表达式的最高阶 factorial:阶乘 arccos:反余弦;arccosh:反双曲余弦 arcsin、arcsinh、arctan、arctanh sin、sinh、cos、cosh、tan、tanh arctan2:两参数的反正切,如x.arctan2(y)、arctan2(1,2) args、arguments:返回表达式中的参数(字母排序) function:指明表达式中哪个字母是参数,如 f=x+y f.args() g=f.function(x) g.args() variables:返回表达式的变量(字母排序)。注:和args的区别不明。 defaule_variables:返回第一个变量,即variables()产生的结果列表中的第一个。 如果表达式中没有变量,则返回x。 assume:假设,如assume(x>2),即假设x>2,注意前后上下文的假设不能冲突 forget:取消之前的假设,在假设使用完毕后使用,否则可能会对后续计算产生影响,如: assume(x>2) assume(x>3) forget() bool:返回表达式的布尔值,如bool(x>3) binomial:返回二项式系数,参数为数字返回计算结果,参数为字母返回表达式。见binomial? 注意:x.binomial(3)和binomial(x,3)的返回形式是不一样的(虽然结果一样)。 coeff(s,n):返回表达式中s的n次方那一项的系数,n默认为1。 coeffs:返回方程中某一变量不同次方的系数,以列表形式给出结果。如: f=2*x^2 + 3*x + 1 f.coeffs() 注:coeff和coeffs也可写为coefficient和coefficients。 collect:根据所给参数合并同类项,如: f = 100 + a*x + x^3*sin(x*y) + x*y + x/y + 2*sin(x*y)/x f.collect(x) f.collect(sin(x*y)) collect_common_factors():合并同类项时约去分子分母中的公因子。如: (x/(x^2 + x)).collect_common_factors() combine:将分母相同的项进行合并(不进行通分) conjugate:返回共轭复数 contradicts:若所给表达式与已知表达式矛盾,返回true。如: (x<3).contradicts(x==0) #返回false (x<y).contradicts(x==30) #返回false (x<y).contradicts({x: 30, y: 20}) #返回true convert:单位转换,使用unit包,如: units.length.foot.convert() units.mass.kilogram.convert(units.mass.pound) csgn:返回参数的符号。正数返回1,负数返回-1,0返回0,未知数x返回csgn(x)。 如:SR(-2).csgn() #不能使用csgn(-2)。 在某些情况下数字参与符号计算需使用SR限定在符号域(Symbolic Ring)。 normalize:将表达式通分,变为分数形式。 denominator:返回表达式的分母部分,默认normalize=true。 numerator:返回表达式的分子部分,默认normalize=true。 numerator_denominator:分别返回表达式的分子和分母部分,默认normalize=true。 对于非分数形式的表达式,若使用参数normalize=false,则分子返回整个表达式,分母返回1。 diff:返回表达式的导数。diff也可写为differentiate和derivative。 diff的参数可以使用多个变量。如: t = (x^2+y)^2 t.differentiate(x,2,y,y) exp_simplify:对包含对数、指数和开方的表达式进行简化。 也可写为radical_simplify、simplify_radical、simplify_exp。 注:若简化结果为0,则返回0。(使用的算法是Maxima radcan()) expand:展开式。expand_rational功能相同。 expand_log:当表达式中的对数部分包含乘方、乘积和比值时,对表达式的对数部分进行展开。 expand_trig(full=False, half_angles=False, plus=True, times=True): 对三角函数和双曲函数中的角度之和与角度之积进行展开。 注:trig_expand和expand_trig功能相同。 factorial_simplify:将包含阶乘的表达式进行展开计算 注:simplify_factorial factor:因式分解。 factor_list:返回因式分解后的因子列表。如:4 f = expand((2*u*v^2-v^2-4*u^3)^2 * (-u)^3 * (x-sin(x))^3) f.factor() f.factor_list() find:返回所有符合模式的表达式,当一个子表达式符合模式时,不查找子表达式的子表达式。 注:使用SR.wild定义通配符,见SR.wild? find_maximum_on_interval:返回表达式在区间[a,b]上的最大值及对应的自变量值。 find_minimum_on_interval:返回表达式在区间[a,b]上的最小值及对应的自变量值。
待续