数值运算

基本运算

在指令界面的 '-->'之后,即可输入运算字串。例子:

--> 1+1            //按下[Enter]
Ans      =
2.
--> log(10)         //按下[Enter]
Ans       =
2.3025851

变量与常量
在scilab中变量的宣告是很自由的,几乎大部分的字串皆可以成为变量。例如x=3;a2=14;......但是变量开头不可以是数字。同时也不可以将Scilab内定常数更改它的数值。

Scilab的内定常数多半以'%'开头,例如圆周率π,它以'%pi'来表示。自然常数e:%e。虚数i:%i。如对这些常数重新宣告会出现错误讯息。

矩阵生成

基本运算符

运算符:log系列

三角函数

三种:sin(),cos(),tan().至于cot,sec,csc这三个函数Scilab并没有设计,不过使用:1/sin() , 1/cos() , 1/tan()这样的格式即可解决。

三个反函数:asin(),acos(),atan().

双曲线函数

这是一个跟三角函数相似但内容完全不同的函数。此类函数与e有关。
三个:sinh(),cosh(),tanh()

三个反函数:asinh(),acosh(),atanh()

向量和矩阵运算

矩阵函数

统计分析函数

多项式运算

复数运算

2.5   布尔矩阵



新建网页 1

2.5  
布尔矩阵

布尔变量是指%t(表示真)和%f(表示伪),它们可以用于布尔矩阵中。布尔矩阵的操作和一般矩阵相同,例如可以连接、可以转置等。
对于布尔矩阵常用的操作符就是==和~,而且==和~还可以用于布尔矩阵的构造。
若B是一个布尔矩阵,or(B)和and(B)分别进行逻辑或运算和与运算。
 
-->%t
%t  =
 
  T
 
-->[1,2]==[1,3]
ans  =
 
  T F
 
-->[1,2]==1
ans  =
 
  T F
 
-->a=1:5; a(a>2)
ans  =
 
    3.    4.    5.
 
-->A=[%t,%f,%t,%f,%f,%f];
 
-->B=[%t,%f,%t,%f,%t,%t]
B  =
 
  T F T F T T
 
-->A|B
ans  =
 
  T F T F T T
 
-->A&B
ans  =
 
  T F T F F F   

Scilab语言

介绍Scilab编程语言
.....B

变量定义
......

a=input("a='')
b=input(''b='')
c=input(''c='')
d=b*b-4*a*c
if d<0
disp(''no solution'')
else t=sqrt(d)
x1=(-b+t)/(2*a)
x2=(-b-t)/(2*a)
end

......

for循环
......

while循环
......

函数定义
......

函数调用
......

向量



向量

向量(Vectors


生成向量的最常用方法就是在各个分量之间使用逗号(空格)隔开或者用分号隔开。

例如:

-->v=[2,-3+%i,7]

 v  =

 

    2.  - 3. + i      7.

 

-->v'

 ans  =

 

    2.

  - 3. - i

    7.

 

-->w=[-3;-3-%i;2]

 w  =

 

  - 3.

  - 3. - i

    2.

 

-->v'+w

 ans  =

 

  - 1.

  - 6. - 2.i

    9.

 

-->v*w

 ans  =

 

    18.

 

-->w'.*v

 ans  =

 

  - 6.    8. - 6.i    14.  

 


注意:向量的各分量之间使用逗号或者空格隔开时,生成的是行向量;而用分号隔开时,生成的是列向量。如:

-->v=[2,-3+%i,7]

 v  =

 

    2.  - 3. + i      7.

 

-->v=[2;-3+%i;7]

 v  =

 

    2.

  - 3. + i

7.     

 

空矩阵[]也是合法的向量,它有零行零列:

-->Empty=[]

 Empty  =

 

     []     

 

注意:单引号(')给出的是向量的转置(对于复向量,计算的是复共轭转置)。例如

-->A=[1,2,3]

 A  =

 

    1.    2.    3.

 

-->A'

 ans  =

 

    1.

    2.

    3.

                 

-->A=[1+%i,2+2*%i]

 A  =

 

    1. + i      2. + 2.i

 

-->A=[1+%i,2+2*%i,3+%i]

 A  =

 

    1. + i      2. + 2.i    3. + i

 

-->A'

 ans  =

 

    1. - i

    2. - 2.i

    3. - i    

 


具有相同维数的向量之间可以相加和相减。具有相同维数的行向量和列向量之间也可以进行点积运算。逐个元素之间可以进行乘法
(.*)和除法(./)

 

注意:空格在不同位置所起到的作用也是不同的,例如:

-->v=[1 +3]

 v  =

 

    1.    3.

 

-->w=[1 + 3]

 w  =

 

    4.

 

-->w=[1+ 3]

 w  =

 

    4.

 

-->u=[1, + 8- 7]

 u  =

 

    1.    1. 

 

如果要生成递增或递减的等差向量,可以采用如下的构造方法:

-->v=5:-.5:3

 v  =

 

5.    4.5    4.    3.5    3. 

 


生成的向量以第一个值开始,第三个值结束,而第二个值则作为步长(即等差序列的差值),缺省的步长是
1,如:

-->v=1:10

 v  =

 

    1.    2.    3.    4.    5.   
6.    7.    8.    9.    10.

 

常值序列可以使用ones函数和zeros函数生成,如

-->v=[1 5 6]

 v  =

 

    1.    5.    6.

 

-->ones(v)

 ans  =

 

    1.    1.    1.

 

-->ones(v')

 ans  =

 

    1.

    1.

    1.

 

-->ones(1:4)

 ans  =

 

    1.    1.    1.    1.

 

-->3*ones(1:4)

 ans  =

 

    3.    3.    3.    3.

 

-->zeros(v)

 ans  =

 

    0.    0.    0.

 

-->zeros(1:5)

 ans  =

 

    0.    0.    0.    0.    0. 

 

注意:当ones函数或zeros函数的变量是一个向量时,执行的结果是得到一个和该向量具有相同维数的全1或全0矩阵。

向量



向量

向量(Vectors


生成向量的最常用方法就是在各个分量之间使用逗号(空格)隔开或者用分号隔开。

例如:

-->v=[2,-3+%i,7]

 v  =

 

    2.  - 3. + i      7.

 

-->v'

 ans  =

 

    2.

  - 3. - i

    7.

 

-->w=[-3;-3-%i;2]

 w  =

 

  - 3.

  - 3. - i

    2.

 

-->v'+w

 ans  =

 

  - 1.

  - 6. - 2.i

    9.

 

-->v*w

 ans  =

 

    18.

 

-->w'.*v

 ans  =

 

  - 6.    8. - 6.i    14.  

 


注意:向量的各分量之间使用逗号或者空格隔开时,生成的是行向量;而用分号隔开时,生成的是列向量。如:

-->v=[2,-3+%i,7]

 v  =

 

    2.  - 3. + i      7.

 

-->v=[2;-3+%i;7]

 v  =

 

    2.

  - 3. + i

7.     

 

空矩阵[]也是合法的向量,它有零行零列:

-->Empty=[]

 Empty  =

 

     []     

 

注意:单引号(')给出的是向量的转置(对于复向量,计算的是复共轭转置)。例如

-->A=[1,2,3]

 A  =

 

    1.    2.    3.

 

-->A'

 ans  =

 

    1.

    2.

    3.

                 

-->A=[1+%i,2+2*%i]

 A  =

 

    1. + i      2. + 2.i

 

-->A=[1+%i,2+2*%i,3+%i]

 A  =

 

    1. + i      2. + 2.i    3. + i

 

-->A'

 ans  =

 

    1. - i

    2. - 2.i

    3. - i    

 


具有相同维数的向量之间可以相加和相减。具有相同维数的行向量和列向量之间也可以进行点积运算。逐个元素之间可以进行乘法
(.*)和除法(./)

 

注意:空格在不同位置所起到的作用也是不同的,例如:

-->v=[1 +3]

 v  =

 

    1.    3.

 

-->w=[1 + 3]

 w  =

 

    4.

 

-->w=[1+ 3]

 w  =

 

    4.

 

-->u=[1, + 8- 7]

 u  =

 

    1.    1. 

 

如果要生成递增或递减的等差向量,可以采用如下的构造方法:

-->v=5:-.5:3

 v  =

 

5.    4.5    4.    3.5    3. 

 


生成的向量以第一个值开始,第三个值结束,而第二个值则作为步长(即等差序列的差值),缺省的步长是
1,如:

-->v=1:10

 v  =

 

    1.    2.    3.    4.    5.   
6.    7.    8.    9.    10.

 

常值序列可以使用ones函数和zeros函数生成,如

-->v=[1 5 6]

 v  =

 

    1.    5.    6.

 

-->ones(v)

 ans  =

 

    1.    1.    1.

 

-->ones(v')

 ans  =

 

    1.

    1.

    1.

 

-->ones(1:4)

 ans  =

 

    1.    1.    1.    1.

 

-->3*ones(1:4)

 ans  =

 

    3.    3.    3.    3.

 

-->zeros(v)

 ans  =

 

    0.    0.    0.

 

-->zeros(1:5)

 ans  =

 

    0.    0.    0.    0.    0. 

 

注意:当ones函数或zeros函数的变量是一个向量时,执行的结果是得到一个和该向量具有相同维数的全1或全0矩阵。