基本运算
在指令界面的 '-->'之后,即可输入运算字串。例子:
--> 1+1 //按下[Enter] Ans = 2. --> log(10) //按下[Enter] Ans = 2.3025851
变量与常量
在scilab中变量的宣告是很自由的,几乎大部分的字串皆可以成为变量。例如x=3;a2=14;......但是变量开头不可以是数字。同时也不可以将Scilab内定常数更改它的数值。
Scilab的内定常数多半以'%'开头,例如圆周率π,它以'%pi'来表示。自然常数e:%e。虚数i:%i。如对这些常数重新宣告会出现错误讯息。
- 变量的类型
scilab的数据类型分为三大类,标量式、矩阵式和特殊数据类型。
标量式和矩阵式都包含如下几种基本类型: 数值类型、布尔类型、多项式类型和字符串类型。特殊数据类型包括表(list)和函数。 - 数值类型
如matlab一样,scilab的变量可以不经定义直接赋值。不同的是,引用系统预定的变量需加上%,如得到常量pi的值,需使用%pi,
类似的如虚数单位%i,布尔值%t,%f等等。 - 布尔类型
可通过关系关系运算符产生布尔类型的变量。要得到布尔类型的字面常量,可以用%t,%f,%T,%F。 - 多项式类型
生成多项式用poly函数。
[p] = poly(a,"x",["flag"])
a是矩阵或向量(包括标量)
x 是符号变量
flag是可选参数- 若a是矩阵,则不需flag参数。返回矩阵x*E- a 的特征多项式,E为与a同维的单位矩阵
- 若a是向量(含标量情形),返回结果与flag有关。若flag为roots(默认值),则返回自变量是x,以向量a的个元素为根的多项式。例如,
-->p = poly(0,"x","roots")
然后可利用返回结果运算得到新的多项式:
-->q = 1+2*p +p^2
也可直接指定系数生成多项式
--> p =poly([1 2 1] ,"x","coeff")
- 字符串类型
用单引号或双引号表示字符串。在scilab中,字符串被当作一种基本类型而不是字符数组来看待。因此,在用字符串构成矩阵的时候没有对字符串长度的限制。例如,
-->s =['this' 'is' ; 'a' 'string']
'this'与'a'长度不需要相同。
矩阵生成
- 直接输入
可以使用同Matlab一样的语法来输入矩阵,如
A = [1 0; 0 1]
行分隔符用分号;或者换行符,列分隔符用逗号,或空格,首尾用[,]括起来。数据必须是同一基本类型,不能把数值和字符串混用。但布尔类型可作为数值类型(0和1)而与数值类型混用,数值类型可作为多项式与多项式混用。 - 使用start:increment:end双目运算符生成向量
例如
--> x=0:0.1:10; - 使用函数
可用linspace得到均匀分布的向量。
[v] = linspace(x1,x2,[,n])
v: 从x1到x2均匀分布的n个数,n可省,缺省值为100。eye 生成单位矩阵
x = eye(m,n) 生成mxn维的对角线为1,其它元素为0的矩阵
x = eye(A) 生成与矩阵A同维的单位矩阵,若A是标量,结果为1
x = eye() 生成维数不定的单位矩阵,当它与其它维数确定的矩阵相加时自动转为相应维数的矩阵
基本运算符
- 加减乘除:+ - * /
- 自然数的次方:ex 在scilab上,要写成:exp(x)
- 绝对值:abs(),例如:abs(-3) Ans= 3.
- 矩阵转数值:在算符前加上".",为什么要这么做?因为Scilab在运算时,基本上都是把那些数值当做矩阵来看待的。当你打了一大串的数值串要做运算时,却出现了错误讯息。就有可能要考虑此状况了,这时就要将乘或除与exp(),sin(),cos()等等的运算式前加上点号。例如:.*,./,.exp()等等,例如:3*t.*exp(sin(t))
- (注意:指令尾端的';'号,加上则运算结果将不会输出至萤幕上,不加则效果反之 。)
- (注意:指令尾端的';'号,加上则运算结果将不会输出至萤幕上,不加则效果反之 。)
- 另外还有次方算符:^ (例如2的3次方23:2^3)
- 开根号:sqrt()
- (例如
表示成sqrt(2),也可以直接用2^(1/2)或2^(0.5)表示。)
- (例如
- 括号:()在运算时只能使用'()',其他的括号类型有别的用途,不能在此使用。
运算符:log系列
-
- log():这是以自然数e=2.7182818为底的对数。这种对数在数学上是以ln来表示之。
- log2():以2为底的对数。
- log10():以10为底的对数,也是我们最熟悉的一种对数之一。
- 其它少见的log指令:
- log1p(x):等同于log(1+x)
- logspace():以对数方式从a,b取n等分。例如:logspace(0,2,300):0到2之间取300等份 。
三角函数
三种:sin(),cos(),tan().至于cot,sec,csc这三个函数Scilab并没有设计,不过使用:1/sin() , 1/cos() , 1/tan()这样的格式即可解决。
三个反函数:asin(),acos(),atan().
双曲线函数
这是一个跟三角函数相似但内容完全不同的函数。此类函数与e有关。
三个:sinh(),cosh(),tanh()
三个反函数:asinh(),acosh(),atanh()
