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

Loading in 2 Seconds...

play fullscreen
1 / 30

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


  • 306 Views
  • Uploaded on

第 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)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

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


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
slide1
第1章 SCILAB简介

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

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

1.2 SCILAB主窗口介绍

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

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

例如: save work.dat

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

load work.dat

1.3.2 界面层次的控制操作

slide4
1.3.4 SCILAB中预先定义的对象

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

slide5
第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 数值型向量与矩阵的定义

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

(或用空格)分隔开。

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

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

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

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

2.5.1 常用矩阵的生成函数

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

eye 生成单位矩阵

rand 生成随机矩阵

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

zeros 生成零矩阵。

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

slide7
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):将对角线向左下方移动一排

slide8
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’])) 矩阵(数组)或向量元素的逐项求积

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

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

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

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

第二个元素

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

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

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

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

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

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

2.9.1 字符串的定义

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

还可以定义字符串矩阵。

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

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

ascii 从字符型转换成ASCII值;

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

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

part 提取字字符串

strindex 在字符串中查找字符串

string 把数据转换成字符型

stripblanks 删除开头和结尾的空格

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

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

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

convstr 字符串的大小写转换

slide12
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 求多项式的导数

slide13
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)

slide14
第3章 SCILAB中的程序设计、

脚本文件与函数

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

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

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

3.2.2 输入输出语句input();

disp();

read();

write();

printf();

slide15
第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语句

slide16
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()加载定义函数的脚本文件。

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

使用global 定义全局变量。

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

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

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

pause, resume, abort

slide19
第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');

slide20
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)');

slide21
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);

slide22
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()差不多。

slide23
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);

slide24
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);

slide25
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( )绘制彩色图形。

slide26
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);

slide27
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);

slide28
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)

slide29
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");

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

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

第6章 SCILAB的应用举例

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

ad