Scilab程序设计教程v002.docx
- 文档编号:27497263
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:44
- 大小:275.28KB
Scilab程序设计教程v002.docx
《Scilab程序设计教程v002.docx》由会员分享,可在线阅读,更多相关《Scilab程序设计教程v002.docx(44页珍藏版)》请在冰豆网上搜索。
Scilab程序设计教程v002
Scilab程序设计教程
内容摘要
本书是为适应教学的需要而编写。
全书以Scilab4.1版为基础,介绍Scilab程序设计的方法与应用,主要内容包括:
Scilab操作基础、Scilab矩阵及其运算、Scilab程序设计、Scilab文件操作、Scilab绘图、Scilab数据分析与多项式计算、Scicos图形化仿真环境以及Scilab常用工具箱。
本书符合教学规律和特点,内容丰富、取材新颖、注重实用、便于教学。
本书可作为高校理工科各专业大学生、研究生学习的教材,也可供广大科技工作者阅读使用。
编者列表:
姓名
单位
备注
张冬
宁夏大学
zd4004@
康彩
北阳公司
kcgrid2004@
序
前言
1.Scilab基础
1.1.Scilab概述
----Scilab(ScientificLaboratory)是以法国国立信息与自动化研究院(INRIA)的科学家为主共同开发的“开放源码”式科学计算软件,它主要有两个功能:
数值计算和计算结果可视化。
SCILAB数据类型丰富,可以很方便地实现各种矩阵运算。
SCILAB也能处理比数字矩阵复杂得多的对象,例如控制专业的多项式传递函数矩阵。
SCILAB允许用户在线建立自定义函数。
函数在SCILAB中被当作数据对象处理。
另外SCILAB具有功能丰富的图形显示能力,可以完成各种常规形式的计算结果的可视化功能。
----SCILAB为用户提供如下计算和开放式编程环境:
----1、多种容易操作的数据类型。
----2、一个作为广泛计算基础的合理有效的基本函数集。
----3、一个开放式编程环境,新的函数能很容易地被添加。
----Intersci是一个有用的发布工具,通过它能建立接口,添加新的函数及工具箱,例如增加新的FORTRAN代码和C代码到SCILAB中。
SCILAB还包括一些应用于不同科学计算领域的工具箱,例如应用于数学建模、信号处理、网络分析、决策优化、线形与非线性控制等多个方面的工具箱。
它的工具箱允许图形定义和模拟复杂的连续和离散的混杂系统。
SCILAB由3个独立的部分组成:
一个解释器、函数库(SCILAB程序)以及一个FORTRAN和C程序库。
另外SCILAB是一种解释性语言,能运行于Windows、Linux以及UNIX等操作系统环境下。
SCILAB与目前流行的MATLAB软件起源相同,都源自于CleveMoler于1980年开发的程序,其功能与MATLAB软件相似,并且表达式的语法、函数的调用和大多数控制指令都相似。
1.2.Scilab的运行环境与安装
1.2.1.Windows下安装
Scilab安装初始界面
Scilab协议界面
选择一个路径(不要选择含中文的路径)
1.2.2.Linux下安装
MAKE
1.3.Scilab集成环境
File菜单:
->NewScilab打开新的Scilab程序
->Exec执行一个Sclab程序文件
->Open打开一个Sclab程序文件
->Load加载Scilab数据文件或者编译过的函数文件
->Save保存Scilab变量数据文件
->ChangDirectoy改变当前的Scilab工作区目录
->GetCurrentDirectoy得到当前的Scilab工作区目录
->PrintSetup打印设置
->Print打印
->Exit退出
Edit菜单:
->Selectall选择目前工作区所有文本
->Copy复制文本
->Paste粘贴
->EmptyClipboard清空剪贴板
Preferences菜单:
->Language选择语言
->Colors用户可以自己定义界面的显示颜色
->Toolbar显示和隐藏工具栏
->File'sAssociation设置文件关联
->ChooseFont设置字体
->ClearHistory按键盘的上下键可以选择最近输入的Scilab命令,本选项清除最近输入的命令提示。
->ClearCommandWindow清空屏幕显示
->Console打开Scilab命令行形式
Control菜单
->Resume回复
->Abort 取消运行
->Interrupt中止运行
->
->
->
Editor菜单
打开Scilab程序编辑器
Applications菜单
->ScicosScilab图形化仿真模块
->EditGraph编辑图形
->M2SCI将Matlab语言的命令程序转换为Scilab的程序
->BrowserVariables察看当前工作区的各个变量的值,并且可以编辑
菜单
->ScilabHELP帮助
->Configure帮助的显示方式设置
->ScilabDemosScilab功能演示
->
->
->
->
->
->
->
->
->
.sav文件为Scilab变量数据文件
1.4.Scilab帮助系统
Scilab具有详尽的帮助文档,并且具有查找功能,可以帮助用户快速的找到所需要的内容。
2.Scilab数据
Scilab具有丰富的数据类型,如整型、字符型、结构体等,以上的数据类型都以矩阵的形式存在,所以矩阵是Scilab最基本的数据对象。
本章重点介绍Scilab中各种数据的表示方法和基本运算。
2.1.Scilab数据的特点
矩阵是Scilab最基本的数据对象,Scilab的大部分运算是在矩阵运算的意义下执行的。
Scilab下的变量不需要预先定义,其直接根据第一次使用时的数据类型自动确定类型。
2.2.变量和数据操作
2.2.1.变量命名
Scilab中的变量命名,变量以字母开头,后接字母、数字、下划线。
Scilab中变量区分大小写。
Scilab中函数调用时必须使用小写,否则就会出错。
2.2.2.变量赋值
Scilab中变量可以直接赋值,也可以使用以知变量组成的表达式赋值。
如:
a=1
b=a+1
Scilab命令语句后面可以不使用结束符号,但如果使用";"则表示不在屏幕输出此项运算显示。
Scialb中的注释采用 "//"只支持单行注释
Clear命令用来清除工作区所有变量内容
2.2.3.特殊变量和常数
ans:
当函数没有指定的输出时,结果就放在变量 ans中
%pi:
圆周率
可以使用BrowserVariables菜单或者browsevar();命令来在变量浏览器中察看Scilab中预定义的各个常数。
打开变量浏览器,设置显示预定义变量。
2.2.4.内存变量管理
Scilab的内存便利管理使用BrowserVariables完成。
可以完成变量的察看、编辑、删除。
Scilab工作区中的变量可以通过Save和 Load命令进行保存和读取
命令
Save文件路径
Load文件路径
2.3.Scilab矩阵
2.3.1.标量的生成
标量的生成很简单,只需要直接给出一个变量赋值:
-->a=1
a=
1.
2.3.2.向量的生成
行向量:
之间采用空格
-->s=[1234]
s=
1.2.3.4.
列向量:
之间采用;
-->s=[1;2;3;4]
s=
1.
2.
3.
4
使用“:
”生成向量
格式:
向量名称 =初值:
步长:
终值自动生成均等分的向量,默认步长为1
-->s=1:
4
s=
1.2.3.4.
-->s=1:
0.4:
4
s=
column1to6
1.1.41.82.22.63.
column7to8
3.43.8
使用Linspace函数生成向量
-->s=linspace(1,100,10)
s=
column1to6
1.12.23.34.45.56.
column7to10
67.78.89.100.
使用Logspace函数生成向量
-->s=logspace(1,100,10)
s=
1.0D+50*
column1to3
1.000D-491.000D-381.000D-27
column4to6
1.000D-160.000011000000.
column7to9
1.000D+171.000D+281.000D+39
2.3.3.矩阵的生成
矩阵的收成一般采用直接输入。
-->s=[1,2,3;4,5,6;7,8,9]
s=
1.2.3.
4.5.6.
7.8.9.
常用矩阵的生成
zeros:
生成全矩阵
-->zeros(3,2)
ans=
0.0.
0.0.
0.0.
-->zeros(3,2,3)
ans=
(:
:
1)
0.0.
0.0.
0.0.
(:
:
2)
0.0.
0.0.
0.0.
(:
:
3)
0.0.
0.0.
0.0.
ones:
生成全1矩阵
-->s=ones(3,2)
s=
1.1.
1.1.
1.1.
eye:
单位矩阵
-->s=eye(2,2)
s=
1.0.
0.1.
rand:
随机矩阵
-->s=rand(3,3)
s=
0.21132490.33032710.8497452
0.75604390.66538110.6857310
0.00022110.62839180.8782165
空矩阵
-->s=[]
s=
[]
生成没有任何元素的空矩阵
2.4.Scilab运算
2.4.1.加法和减法
矩阵的加减运算需要参与运算的两个矩阵大小相同,然后直接可以进行运算。
C=A+B
C=A-B
2.4.2.乘法运算
C=A*B矩阵乘
C=A.*B向量乘
2.4.3.除法运算
C=A\B矩阵左除
C=A/B矩阵右除
2.4.4.矩阵求逆
C=inv(A)
2.4.5.乘方运算
C=A^p矩阵乘方
C=A.^p向量乘方
2.4.6.矩阵转秩
C=A'
布尔矩阵
字符串矩阵
多项式矩阵
表(List)类型
2.5.字符串
Scilab中的字符串可以直接运算
-->s="aaa"+"bbb"
s=
aaabbb
2.5.1.字符串查找
i=strindex(str1,str2)
-->i=strindex("abcdef","bc")
i=
2.
2.5.2.大小写转换
小写变大写
-->s=convstr("abc",'u')
s=
ABC
大写变小写
-->s=convstr("ABC",'l')
s=
abc
2.5.3.字符串替换
-->strsubst('abcdef','bc','00')
ans=
a00def
3.Scilab程序设计
3.1.SCI文件
3.2.程序控制结构
3.2.1.选择结构
if语句
switch语句
3.2.2.循环结构
for语句
3.3.函数文件
3.4.程序举例
3.5.程序调试
4.Scilab文件操作
4.1.文件的打开与关闭
4.2.文件的读写操作
4.3.数据文件定位
5.Scilab绘图
5.1.二维数据曲线图
5.2.其他二维图形
5.3.三维图形
5.4.图形修饰处理
5.5.图像处理及动画制作
6.Scilab数据分析与多项式计算
6.1.数据统计处理
6.2.数据插值
6.3.曲线拟合
6.4.离散傅立叶变换
6.5.多项式计算
6.6.稀疏矩阵
6.7.数值积分
6.8.数值微分
6.9.线性方程组求解
6.10.非线性方程数值求解
6.11.常微分方程初值问题的数值解法
6.12.函数极值
7.Scilab图形化界面设计
(期待Scilab5.0Java界面接口)
8.Scicos图形化仿真环境
8.1.Scicos介绍
8.2.Scicos基本库
8.3.Scicos的使用
8.4.Scicos模块的添加
9.Scilab常用工具箱
10.Scilab外部接口
10.1.C语言接口
10.2.Java语言接口
附录Scilab常用命令与函数分类索引表
scilab部分函数
1.通用指令
help在线帮助
apropos文档中关键词搜寻
ans缺省变量名以及最新表达式的运算结果
clear从内存中清除变量和函数
exit关闭SCILAB
quit退出SCILAB
save把内存变量存入磁盘
exec运行脚本文件
mode文件运行中的显示格式
getversion显示SCILAB版本
ieee浮点运算溢出显示模式选择
who列出工作内存中的变量名
edit文件编辑器
type变量类型
what列出SCILAB基本命令
format设置数据输出格式
chdir改变当前工作目录
getenv给出环境值
mkdir创建目录
pwd显示当前工作目录
evstr执行表达式
2.运算符和特殊算符
加
-减
*矩阵乘
.*数组乘
^矩阵乘方
.^数组乘方
反斜杠或左除
/斜杠或右除
./或.数组除
==等号
~=不等号<小于
>大于
=大于或等于
&,and逻辑与
|,or逻辑或
~,not逻辑非
:
冒号
()园括号
[]方括号
{}花括号
.小数点
逗号
;分号
//注释号
=赋值符号
'引号
'复数转置号
.'转置号
ans最新表达式的运算结果
%eps浮点误差容限,
%i虚数单位=√(-1)
%inf正无穷大
%pi圆周率,π=3.1415926535897....
3.编程语言结构
abort中止计算或循环
break终止最内循环
case同select一起使用
continue将控制转交给外层的for或while循环
else同if一起使用
elseif同if一起使用
end结束for,while,if语句
for按规定次数重复执行语句
if条件执行语句
otherwise可同switch一起使用
pause暂停模式
return返回
select多个条件分支
then同if一起使用
while不确定次数重复执行语句
eval特定值计算
feval函数特定值计算或多变量计算
function函数文件头
global定义全局变量
isglobal检测变量是否为全局变量
error显示错误信息
lasterror显示最近的错误信息
sprintf按格式把数字转换为串
warning显示警告信息
4.基本数学函数
acos反余弦
acosh反双曲余弦
acot反余切
acoth反双曲余切
acsc反余割
acsch反双曲余割
asin反正弦
asinh反双曲正弦
atan反正切
atanh反双曲正切
cos余弦
cosh双曲余弦
cotg余切
coth双曲余切
sin正弦
sinh双曲正弦
tan正切
tanh双曲正切
exp指数
log自然对数
log10常用对数
log2以2为底的对数
sqrt平方根
abs绝对值
conj复数共轭
imag复数虚部
real复数实部
ceil向上(正无穷大方向)取整
fix向零方向取整
floor向下(负无穷大方向)取整
round四舍五入取整
sign符号函数
gsort降次排序
erf误差函数
erfc补误差函数
gammagamma函数
interp插值函数
interpln线性插值函数
intsplin样条插值函数
smooth样条平滑函数
spline样条函数
quarewave方波函数
sign符号函数
double将整数转换为双精度浮点数
5.基本矩阵函数和操作
eye单位阵
zeros全零矩阵
ones全1矩阵
rand均匀分布随机阵
genmarkov生成随机Markov矩阵
linspace线性等分向量
logspace对数等分向量
logm矩阵对数运算
cumprod矩阵元素累计乘
cumsum矩阵元素累计和
toeplitzToeplitz矩阵
disp显示矩阵和文字内容
length确定向量的长度
size确定矩阵的维数
diag创建对角阵或抽取对角向量
find找出非零元素1的下标
matrix矩阵变维
rot90矩阵逆时针旋转90度
sub2ind据全下标换算出单下标
tril抽取下三角阵
triu抽取上三角阵
conj共轭矩阵
companion伴随矩阵
det行列式的值
norm矩阵或向量范数
nnz矩阵中非零元素个数
null清空向量或矩阵中的某个元素
orth正交基
rank矩阵秩
trace矩阵迹
cond矩阵条件数
rcond逆矩阵条件数
inv矩阵的逆
luLU分解或高斯消元法
pinv伪逆
qrQR分解
givensGivens变换
linsolve求解线性方程
lyapLyapunov方程
hessHessenberg矩阵
poly特征多项式
schurSchur分解
expm矩阵指数
expm1矩阵指数的Pade逼近
expm2用泰勒级数求矩阵指数
expm3通过特征值和特征向量求矩阵指数
funm计算一般矩阵函数
logm矩阵对数
sqrtm矩阵平方根
6.特性值与奇异值
spec矩阵特征值
gspec矩阵束特征值
bdiag块矩阵,广义特征向量
eigenmarkov正则化Markov特征向量
pbig特征空间投影
svd奇异值分解
sva奇异值分解近似
7.矩阵元素运算
cumprod元素累计积
cumsum元素累计和
hist统计频数直方图
max最大值
mean平均值
median中值
min最小值
prod元素积
sort由大到小排序
std标准差
sum元素和
trapz梯形数值积分
corr求相关系数或方差
8.稀疏矩阵运算
sparse稀疏矩阵(只存储非零元素)
adj2sp邻接矩阵转换为稀疏矩阵
full稀疏矩阵转换为全矩阵
mtlb_sparse将SCILAB稀疏矩阵转换为MATLAB稀疏矩阵格式
sp2adj稀疏矩阵转换为邻接矩阵
speye稀疏矩阵方式单位阵
sprand稀疏矩阵方式随机矩阵
spzeros稀疏矩阵方式全零阵
lufact稀疏矩阵LU分解
lusolve稀疏矩阵方程求解
spchol稀疏矩阵Cholesky分解
9.输入输出函数
diary生成屏幕文本记录
disp变量显示
file文件管理
input用户键盘输入
load读已存的变量
mclose关闭文件
mget读二进制文件
mgetl按行读ASCII码文件
mgetstr读字符串中单个字
mopen打开文件
mput写二进制文件
mfscanf读ASCII码文件
print将变量记录为文件
read读矩阵变量
save存变量为二进制文件
strartup启动文件
write按格式存文件
xgetfile对话方式获取文件路径
x_dialog建立Xwindow参数输入对话框
Tk_Getvar得到Tk文件变量
Tk_EvalFile执行Tk文件
10.函数与函数库操作
deff在线定义函数
edit函数编辑器
function打开函数定义
functionsSCILAB函数或对象
genlib在给定目录下建立所有文件的
函数库
get_function_path读函数库的文件存储目录路径
getd读函数库中的全部文件
getf在文件中定义一个函数
lib函数库定义
macroSCILAB函数或对象
macrovar输入变量个数
newfun输出变量个数
11.字符串操作
code2str将SCILAB数码转换为字符串
convstr字母大小转换
emptystr清空字符串
grep搜寻相同字符串
part字符提取
str2code将字符串转换为SCILAB数码
string字符串转换
stringsSCILAB对象,字符串
strcat连接字符
strindex字符串的字符位置搜寻
strsubst字符串中的字符替换
12.日期与时间
date日期
getdate读日期与时间
timerCPU时间计时
13.二维图形函数
plot2d直角坐标下线性刻度曲线
champ2维向量场
champ1由颜色箭头表示的2维向量场
contour2d等高线图
errbar曲线上增加误差范围框线条
grayplot应用颜色表示的表面
xgrid画坐标网格线
histplot统计频数直方图
Matplot散点图阵列
14.三维图形函数
plot3d三维表面
plot3d1用颜色或灰度表示的三维表面
param3d三维中单曲线
param3d1三维中多曲线
contour三维表面上的等高线图
hist3d三维表示的统计频数直方图
geom3d三维向二维上的投影
15.线条类图形
xpoly单线条或单多边形
xpolys多线条或多各多边形
xrpoly正多边形
xsegs非连接线段
xfpoly单个多边形内填充
xfpolys多个多边形内填充
xrect矩形
x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Scilab 程序设计 教程 v002