第
This presentation is the property of its rightful owner.
Sponsored Links
1 / 30

1.1 SCILAB 的安装 SCILAB 可以从官方网站 scilab 上下载 , 用户 可以选择安装二进制版本 , 或者编译源程序生成 SCILAB 。 PowerPoint PPT Presentation


  • 241 Views
  • Uploaded on
  • Presentation posted in: General

第 1 章 SCILAB 简介. 1.1 SCILAB 的安装 SCILAB 可以从官方网站 www.scilab.org 上下载 , 用户 可以选择安装二进制版本 , 或者编译源程序生成 SCILAB 。 1.2 SCILAB 主窗口介绍. 1.3 SCILAB 中的基本操作与预定对象 1.3.1 SCILAB 的工作环境的存取 可采用 save load 函数对工作环境进行存取。 例如: save work.dat save(‘work.dat’,A,x)

Download Presentation

1.1 SCILAB 的安装 SCILAB 可以从官方网站 scilab 上下载 , 用户 可以选择安装二进制版本 , 或者编译源程序生成 SCILAB 。

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


1 1 scilab scilab scilab scilab

第1章 SCILAB简介

1.1 SCILAB的安装SCILAB可以从官方网站 www.scilab.org上下载,用户

可以选择安装二进制版本,或者编译源程序生成SCILAB。

1.2 SCILAB主窗口介绍


1 1 scilab scilab scilab scilab

1.3 SCILAB中的基本操作与预定对象

1.3.1 SCILAB的工作环境的存取 可采用save load 函数对工作环境进行存取。

例如: save work.dat

save(‘work.dat’,A,x)

load work.dat

1.3.2 界面层次的控制操作


1 1 scilab scilab scilab scilab

1.3.3 SCILAB主窗口中的快捷键操作


1 1 scilab scilab scilab scilab

1.3.4 SCILAB中预先定义的对象

可以用Whos和 who 查看SCILAB中预先定义的对象。


1 1 scilab scilab scilab scilab

第2章 数据类型

2.1 引言 2.2 特定符号与常数 2.2.1 特定符号 指令分隔符( , ;) 指令行续行符(…)

加注符号(//) $ 最后一个变量

起始值:间隔:终止值

2.2.2 特定常数%pi, %i, %NAN无穷,%e, %inf ,%eps逃离,%f错,%t对。

2.3 标量的数值计算和常用函数 包括加(+)、减 (-)、乘 (*) 、除(/)和乘方 (^)等运算。

常用函数有 :

sqrt, log, log10,sin,cos,tan,atan,exp,cosh,floor大于该数的最小整数,

round四舍五入,abs绝对值,real,imag,modulo取余modulo (3,2)等.

2.4 数值型向量与矩阵的定义及基本运算2.4.1 数值型向量与矩阵的定义

矩阵元素放在[ ]中,每行用“;”分隔开,每列用“,”

(或用空格)分隔开。


1 1 scilab scilab scilab scilab

2.4.2 数值型向量与矩阵的运算 包括矩阵的加法(+),减法(-),共轭转置(’),乘法(*),

左除(A/B是指 ),右除(A\B是指 ),幂(^),

逐元相乘(.*),逐元相除(./),逐元取幂(.^) 等运算。

2.5 与数值型矩阵有关的若干常用函数

2.5.1 常用矩阵的生成函数

diag 生成对角矩阵 diag([1,2,3]) ;和空格也可以

eye 生成单位矩阵

rand 生成随机矩阵

ones 生成全部元素为1的矩阵

zeros 生成零矩阵。

linspace(或“:”) 生成线性分布的向量。


1 1 scilab scilab scilab scilab

2.5.2 size函数和matrix函数

size函数获取矩阵的大小; size(矩阵名)

matrix函数用已知矩阵的元素生成重新定义大小的矩阵。

e.g b=matrix(a,2,3)

2.5.3 从已知矩阵提取部分元素来构成同阶新矩阵的若干函数 可使用 triu()函数和 tril()函数提取上三角和下三角元

素来构成同阶新矩阵 e.g y=triu(a,1):将对角线向左下方移动一排


1 1 scilab scilab scilab scilab

2.5.4 与方阵的行列式求值、求逆、线性代数方程组

的求解、求矩阵特征值与特征向量等有关的函数

det 方阵的行列式求值

inv 求逆

linsolve 线性代数方程组的求解

spec 求矩阵特征值

bdiag 矩阵对角化

2.5.5 与矩阵(数组)或向量有关的数据统计函数

[n,[d]]=max(a,[‘r(每一行)’],[‘c(每一列)’]) 取矩阵(数组)或向量元素的最大值

sum(a,[‘r’],[‘c’]) 矩阵(数组)或向量元素求和

mean(a, [‘r’],[‘c’])) 矩阵(数组)或向量元素求平均值

cumsum(a ,[‘r’],[‘c’])) 矩阵(数组)或向量元素的累加

prod(a ,[‘r’],[‘c’])) 矩阵(数组)或向量元素的逐项求积


1 1 scilab scilab scilab scilab

2.6 向量与矩阵(数组)元素的引用b(k) 表示向量b的第k个元素

a(i,j) 表示矩阵a的第(i,j)个元素

可以用函数find(条件表达式)来寻找所需的元素。

a($)表示a的最后一个元素。 a($-1) 表示倒数

第二个元素

还可以用逻辑符号来提取矩阵的元素,例如:


1 1 scilab scilab scilab scilab

2.7 整型数组 采用int8()和int32()把一个数转化为整数。

a=int8(4); b=int8(5); c=a/b 结果为0

2.8 布尔型向量与矩阵的定义及基本运算 逻辑运算:与(&),或(|),非(~);

关系运算:==, >,<,>=,<=,~=

2.9 字符串型数据的定义与运算

2.9.1 字符串的定义

字符串一般用单引号(’)或双引号 (”)括起来。

还可以定义字符串矩阵。

2.9.2 字符串的运算 可采用“+”将两个字符串连起来。


1 1 scilab scilab scilab scilab

2.9.3 与处理字符串有关的一些常用函数

ascii 从字符型转换成ASCII值;

execstr 把字符串传给Scilab解释器;

grep 查找在字符矩阵中是否出现该字符串;

part 提取字字符串

strindex 在字符串中查找字符串

string 把数据转换成字符型

stripblanks 删除开头和结尾的空格

strubst 在字符矩阵中替换该字符串

strcat 把字符矩阵各元素的字符串串连起来

length 求字符矩阵各字符串元素的长度

convstr 字符串的大小写转换


1 1 scilab scilab scilab scilab

2.10 多项式类型2.10.1 多项式的定义 1、直接定义 s=poly(1(q中的s用s-1代入),’

x(变量名字)’) ;q=1+3*s^4;

2、用根定义 p=poly([1,3],’x’);

3、用系数定义 p1=poly([1,2,4],’x’,’c’);

2.10.2 多项式运算

有加(+)、减(-)、乘(*)、除(/)运算。

2.10.3 有关多项式的几个常用函数 coeff 取多项式系数

pdiv 求多项式的商和余式

denom 取多项式的分母

numer 取多项式的分子

roots 求多项式的根

horner(p,str) 用str代替多项式p中的变量

derivat 求多项式的导数


1 1 scilab scilab scilab scilab

2.11 表类型2.11.1 表类型的定义

可用list,tlist和mlist三个函数创建表变量。

表中的元素可以是任何类型的,例如

s=list(‘shanghai’,13, %f,[1,5]);

definedfields()返回表中已定义元素的标号;

2.11.2 表类型数据的引用,域的插入与删除 使用 x(0) 在表x的表头插入数据;

使用 x(i) 删除表x中的第i个元素;

使用getfield()可以抽取表中的元素;

使用setfield()可以在表中插入元素;

2.11.3 tlist和mlist类型tlist和mlist采用域来定义表;例如:

M=tlist([‘V(无意义)','name','value'],['a','b','c'],[1 2 3]);

mlist类型表中的元素不可以索引来访问存储的对象。

(M.name(2)得到name的第二个元素b)


1 1 scilab scilab scilab scilab

第3章 SCILAB中的程序设计、

脚本文件与函数

3.1 引言 3.2 顺序结构程序设计3.2.1 赋值语句 变量名=表达式;

表达式是由变量名加运算符所组成的式子;

在变量名中区分大小写,有效字符是19个。

3.2.2 输入输出语句input();

disp();

read();

write();

printf();


1 1 scilab scilab scilab scilab

第3章 SCILAB中的程序设计、

脚本文件与函数

3.3 选择结构程序设计3.3.1 if语句 3.3.2 selectcase语句 3.4 循环结构程序设计3.4.1 for语句 3.4.2 while 语句 3.4.3 循环语句的嵌套(多重循环语句) 3.4.4 continue语句和break语句


1 1 scilab scilab scilab scilab

3.5 脚本文件与函数

3.5.1 脚本文件 可使用exec执行脚本文件,例如 exec fact.sci

3.5.2 函数

1、函数的定义

function [output]=fun_name(input)

函数体

endfunction

还可以使用deff()定义内置函数,例如

deff(‘c=plus(a,b)’,’c=a*b’);

2、 使用getf()加载定义函数的脚本文件。


1 1 scilab scilab scilab scilab

3.5.3 局部变量与全局变量、函数的嵌套定义与递归调用

使用global 定义全局变量。

在scilab中,可以嵌套定义函数,例如:


1 1 scilab scilab scilab scilab

在scilab中函数还可以递归调用,例如

3.5.4 有关程序调试的几个常用指令

pause, resume, abort


1 1 scilab scilab scilab scilab

第4章 计算结果可视化

4.1 引言 4.2 二维图形的绘制4.2.1 plot指令1、plot指令可以用來绘制一般的曲线图。

 例如(对sin函数绘图):

 t=linspace(0,2*%pi); //取0到2π的范围

 y=sin(t);

 plot(y);

2、多重曲线绘图,例子:

 x=-2:0.01:2;

y1=sin(x);

y2=exp(x);

y3=sin(x)+cos(x);

X=[x;x;x];

 Y=[y1,y2,y3];

 plot(X',Y');


1 1 scilab scilab scilab scilab

3、修改图形的线符

在绘图时,可以用各种符号来画曲线,例子:

t=linspace(0,2*%pi,50);

 y=sin(t);

 plot(t,y,'.','marksize',4,'color',[1 0 0]);

 plot(t,y+1,'+','marksize',4,'color',[0.7 0.3 0]);

 plot(t,y+2,'x','marksize',4,'color',[0 0 1]);

 plot(t,y+3,'o','marksize',4,'color',[0.8 0.4 0.6]);

4、给图形加注

在scilab下,可在图的坐标轴旁和图上方加上装饰或

注解的文字,是使用xtitle()指令。

 用法:xtitle(‘标題’,‘x轴注解’,‘y轴注解');

 例如:

 t=linspace(0,2*%pi,50);

 y=sin(t);

 plot(t,y);

 xtitle('sin function','t','sin(t)');


1 1 scilab scilab scilab scilab

5、同一个窗口绘制多幅图

subplot()指令可以让許多张图分别放在同一个绘图窗口

而不是叠在同一张图上。subplot要放在绘图指令之前。

語法:subplot(a,b,n);

 a:丛向图表数

 b:橫向图表数

 n:第几张图,n是先由左而右,自上而下。

t=linspace(0,2*%pi);

 y=sin(t);

 t1=1:20;t2=1:20;

 A=rand(20,20);B=rand(20,20);

 subplot(3,2,1);plot(t,y);

 subplot(3,2,2);plot2d2(t,y);

 subplot(3,2,3);plot2d3(t,y);

 subplot(3,2,4);plot2d4(t,y);

 subplot(3,2,5);bar(t,y);

 subplot(3,2,6);champ(t1,t2,A,B);


1 1 scilab scilab scilab scilab

6、离散点的绘制

A:3.3 4.2 11 13 5.6 8

 B:2.1 5 6.7 13 17 19

 x=read('A',1,6);

 y=read('B',1,6);

 plot(x,y,'.');

必須注意的是,在plot()中必須要加入'.'這個參數,如果不加的話,Scilab會將這些點連起來。

在绘图时,可使用函数xgrid()对所绘制的图形加上网格。

4.2.2 plot2d指令

plot2d()指令的用法与plot2d()差不多。


1 1 scilab scilab scilab scilab

4.2.3 向量场图的绘制

用法:champ(t1,t2,X,Y);

 t1:y方向(垂直方向)范围

 t2:x方向(水平方向)范围

 X:全域x方向的大小矩陣

 Y:全域y方向的大小矩陣

4.2.4 极坐标绘图

polarplot()指令主要是让

函数坐标轴的R方向以同

心圓显示,θ方向以垂直

于同心圓的放射线表示。

例子:

t=linspace(0,2*%pi);

r=sin(4*t));

polarplot(t,r);


1 1 scilab scilab scilab scilab

4.2.5 等高线图

定义一个连续函数,对它画contour的方式:

 1.定义一个曲面:deff(‘[变量3]=宣告的曲面函数

(变量1,变量2)’,’变量3=f(变量1,变量2)’);

 2.定义变量范围;

 3.contour(x范围,y范围,曲面函数,要画线的条数);

 例子:

 deff('[z]=sf(x,y)','z=2*x^2+3*y^2');

 x=1:20;

 y=1:20;

 contour(x,y,sf,10);


1 1 scilab scilab scilab scilab

4.3 三维图形的绘制4.3.1 函数plot3d( )——三维曲面的绘制

用法:plot3d(t1,t2,Z);

 t1:y轴方向选取的范围。

 t2:x轴方向选取的范围。

 Z:矩陣。

如果需要让图在绘出后停在某个特定的視角,可以在plot3d()內再加入alpha和theta參数,這两个参数是指角度,用法:plot3d(t1,t2,Z,alpha=數值,theta=數值);

例如:

A=[1 2 2 1 0;2 3 4 6 3; 3 2 1 2 2;1 1 2 3 2;

1 1 2 2 1;1 3 3 1 2];

 t1=1:6;

 t2=1:5;

 plot3d(t1,t2,A);

还可以用plot3d1( )绘制彩色图形。


1 1 scilab scilab scilab scilab

4.3.2 连续函數3D绘图

fplot3d()指令需要搭配连续函数来使用,而非矩陣。

使用fplot3d前,通常要用deff()来定义函數z,然后要定义該函数的范围x,y。

 fplot3d語法:fplot3d(x,y,f);

 也有alpha和theta参数可以調整視角,語法相同。

 图形网格线的疏密度,取决于x,y范围中切的等份数。

例如:

deff('z=f(x,y)','z=x*y');

 x=-6:6;

 y=-8:4;

 fplot3d(x,y,f);


1 1 scilab scilab scilab scilab

4.3.3 函数param3d——三维空间曲线的绘制

用法:param3d(xf,yf,zf);

 xf:x方向的路线函數。

 yf:y方向的路线函數。

 zf:z方向的路线函數。

 例如:

 t=linspace(0,2*%pi);

 param3d(sin(t),cos(t),t);

再例如:

t=linspace(0,1,200);

 x=2*t;

 y=t;

 z=6*t-(1/2)*9.8*t^2;

 param3d(x,y,z);


1 1 scilab scilab scilab scilab

4.3.4 函数mesh()—— 绘图网格图形

例如:

x=linspace(-1,1,20);

y=linspace(-2,2,40);

[X,Y]=meshgrid(x,y) ;

Z=cos(%pi*sqrt(X.^2+Y.^2));

mesh(X,Y,Z)


1 1 scilab scilab scilab scilab

4.4 绘图全局参数与色图的设定4.4.1 绘图全局参数的设定 可以用xset设置绘图全局参数,例如:

xset(“thickness”,1);

x=-2:0.1:2;

plot(x,x.^3);

xbasc();

xset(“thickness”,4);

plot(x,x.^3);

4.4.2 色图的设定 色图的设定可通过图形窗口的属性来设置。例如:

n=64;

r=linspace(0,1,n)';

g=linspace(1,0,n)';

b=ones(r);

cmap=[r g b];

f=gcf(); f.color_map=cmap;

plot3d1()

f.color_map=get(sdf(),"color_map");


1 1 scilab scilab scilab scilab

第5章 SCILAB与C或FORTRAN程序的接口

5.1 引言 5.2 应用动态链接指令link 5.3 调用动态链接程序的指令call

第6章 SCILAB的应用举例

6.1 引言 6.2 在求解线性方程组方面的应用 6.3 在求解非线性方程(组)方面的应用 6.4 SCILAB在函数插值方面的应用


  • Login