Sage是免费、开源的数学软件,可用于代数、几何、数论、密码学、数值计算以及其他相关领域的教学和科研。Sage的总体目标是成为一个实用的、免费的、开源的数学软件以代替Maple,Mathematica,Magma和MATLAB。(Sage应该是一个数学工具箱,它将很多开源的数学软件粘和在一起,同时可以和很多商业的数学软件进行衔接。)
Sage的使用界面分为两种一种是命令行版,一种是浏览器版。在命令行模式下输入notebook(),即可进入浏览器版。两种模式的主要区别之一是:命令行模式下每次只能执行一条命令,而浏览器版可以在输入多条命令后,键入shift+enter按序一次执行。
Sage使用的python语言,因此需注意不同的块一定要保持缩进一致。
1、常见运算符
1.1 + - * / ^ **
^和**意思一样:2^3和2**3结果一样
1.2 %:取余;//:取整
注意两边必须是整数。
1.3 == != >= <= > <
1.4 其他
sqrt:开方
factorial:阶乘
2、运算精度
如表达式中的数字都是整数,则运算结果为精确结果,否则为近似结果。(对于pi和e等常量例外)
例如:sin(1/2)和sin(0.5)
使用函数n可以强制使用近似值。(默认15位有效数字)
例如:n(sqrt(2))
可以使用参数digits指定有效数字的位数。有两种写法,如n(pi,digits=5)和pi.n(digits=5)。(注意digits不能省略)
另外函数n只是改变显示方式,并不改变数字本身。如:n(sqrt(2),digits=5)**2
3、查找帮助
加个?即可。如n?、sin?等。
也可使用tab补全辅助输入函数名。
4、定义自己的函数(def)
def 函数名(变量名):
中间过程
return 返回值
例如:
def f(x):
return factorial(x)
f(3) #返回3的阶乘
5、for循环控制
for i in range(10):
print i
for i in range(3,10):
print i
for i in range(4,10,2):
print i
注意:注意块起始的冒号;循环控制不包括最后的那个点(这个例子中是10)。
6、常用数据结构
6.1 list:任意对象的列表,下标从0开始。
len(v):得到v的长度;
v.append(obj):向v的末尾添加新的对象;
del v[i]:删除v的第i个元素。
例如:
v = [1, "hello", 2/3, sin(x^3)]
print v[1]
6.2 dictionary:即哈希表、键值对
例如:
d = {'hi':-2, 3/8:pi, e:pi}
print d['hi']
7、解方程
例如:
solve(x^2 + 3*x + 2, x)
solve([x^2 + b*x + c == 0],x)
solve([x+y==6, x-y==4], x, y)
find_root(cos(phi)==sin(phi),0,pi/2) #注意要注明区间
8、微分和积分
微分:
diff(sin(u), u)
diff(sin(x^2), x, 4) #四阶微分
偏微分:
f = x^2 + 17*y^2
f.diff(x)
f.diff(y)
积分:
integral(x*sin(x^2), x) #不定积分
integral(x/(x^2+1), x, 0, 1) #定积分
9、部分分式分解
f = 1/((1+x)*(x-1))
f.partial_fraction(x)
参考网址:
1、http://ai7.org/wp/html/682.html
2、http://www.lainme.com/doku.php/topic/sage/start