scilab_使用教程

合集下载

科学计算自由软件SCILAB基础教程(可编辑)

科学计算自由软件SCILAB基础教程(可编辑)

科学计算自由软件SCILAB基础教程(可编辑)科学计算自由软件SCILAB基础教程第 1 章SCILAB 简介1.1 引言1.2 SCILAB 软件的构成1.3 安装 SCILAB 的系统需求1. 4 SCILAB 主窗口介绍图1.1 SCILAB 3.0 的主窗口图1.2 SCILAB 3.0 的文件菜单项图1.3 SCILAB 3.0 的编辑菜单项图1.4 SCILAB 的选择菜单项图1.5 SCILAB 的控制菜单项图1.6 SCILAB 的编辑器窗口图1.7 SCILAB 的应用窗口图1.8 SCILAB 的帮助窗口1.5 SCILAB 中的基本操作与预定对象SCILAB 中的文件操作1(5(2 界面层次的控制操作SCILAB 主窗口中的快捷键操作SCILAB 中预先定义的对象图1.9 who 指令后的SCILAB 主窗口图1.10 whos 指令后的SCILAB 主窗口1. 6 谈谈如何学习 SCILAB图1.11 SCILAB 的演示窗口图1.12 SCILAB 的选择图形演示窗口图1.13 SCILAB 的选择图形演示窗口图1.14 SCILAB 的一个图形信息窗口图1.15 SCILAB 的一个图形演示窗口第 2 章数据类型2.1 引言2.2 特定符号与常数特定符号特定常数2. 3 标量的数值计算2.4 数值型向量与矩阵的定义及基本运算数值型向量与矩阵的定义数值型向量与矩阵的运算2.5 与数值型矩阵有关的若干常用函数常用矩阵的生成函数size 函数和 matrix 函数从已知矩阵提取部分元素来构成同阶新矩阵的若干函数与方阵的行列式求值、求逆、线性代数方程组的求解、求矩阵特征值与特征向量等有关的函数与矩阵(数组)或向量有关的数据统计函数2(6 向量与矩阵(数组)元素的引用2(7 整型数组2. 8 布尔型向量与矩阵的定义及基本运算2.9 字符串型数据的定义与运算字符串的定义字符串的运算与处理字符串有关的一些常用函数2.10 多项式类型多项式的定义多项式运算有关多项式的几个常用函数2.11 表类型表类型的定义表类型数据的引用,域的插入与删除tlist 和 mlist 类型第 3 章 SCILAB 中的程序设计、脚本文件与函数3.1 引言3.2 顺序结构程序设计赋值语句输入输出语句3.3 选择结构程序设计if 语句图3.1 不完整if 语句的框图图3.2 完整if 语句的框图select_case 语句图3.3 select 语句框图(else 缺省情形)3.4 循环结构程序设计for 语句图3.4 for 语句的框图while 语句图3.5 while 型循环框图循环语句的嵌套(多重循环语句)continue 语句和 break 语句图3.6 循环体内含有continue 语句的框图图3.7 循环体内含有break 语句的框图3.5 脚本文件与函数脚本文件函数局部变量与全局变量、函数的嵌套定义与递归调用图3.8 用递归调用求 n!示意图(n 4 )有关程序调试的几个常用指令3.6 函数的应用函数名作形式参数――二分法求非线性方程的根图3.9 用二分法求方程p (x ) 0 的根的框图函数的递归调用――求两正整数的最大公因子图3.10 用递归调用求n!示意图多重循环的应用――线性方程组的顺序消元法图3.11 顺序消元法的框图第 4 章计算结果可视化4.1 引言图4.1 图形窗口图4.2 图形窗口的文件菜单图4.3 图形窗口的工具菜单图4.4 图形窗口的编辑菜单4.2 二维图形的绘制plot 指令图4.5 利用指令plot (y,'X', 'Y', 'y f(x )' )画图图4.6 利用指令plot 在同一窗口画两条曲线图4.7 利用指令plot (x,y )画图图4.8 利用指令plot (z,y )在同一窗口画两条曲线plot2d 指令图4.9 利用指令plot2d (x,y )画y sinx 的图形图4.10 利用指令plot2d (x,y )在同一窗口画两条曲线图4.11 利用指令plot2d (x,y, 画曲线y sinx图4.12 利用指令plot2d (x,y, opt+args )在同一窗口画三条曲线图4.13 利用指令plot2d2 (x,y )画曲线y sin2x图4.14 利用指令plot2d3 (x,y )画曲线y sin2x图4.15 利用指令plot2d4 (x,y )画曲线y sin2x4.3 三维图形的绘制函数plot3d( )――三维曲面的绘制图4.16 利用指令plot3d (x,y …)画曲面z sinxcosy图4.17 利用指令plot3d (x,y …)画曲面z x2+y2图4.18 利用指令plot3d (x,y …)画曲面z xy图4.19 利用指令plot3d (x,y …)画曲面z sinxcosy 图4.20 利用指令plot3d 在同一坐标系中画两张曲面函数param3d――三维空间曲线的绘制图4.21 利用指令param3d 画螺旋线图图4.22 利用指令param3d 在同一坐。

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);
2.9.3 与处理字符串有关的一些常用函数 ascii 从字符型转换成ASCII值; execstr 把字符串传给Scilab解释器; grep 查找在字符矩阵中是否出现该字符串; part 提取字字符串 strindex 在字符串中查找字符串 string 把数据转换成字符型 stripblanks 删除开头和结尾的空格 strubst 在字符矩阵中替换该字符串 strcat 把字符矩阵各元素的字符串串连起来 length 求字符矩阵各字符串元素的长度 convstr 字符串的大小写转换
第1章 SCILAB简介
1.1 SCILAB的安装 SCILAB可以从官方网站 上下载,用户 可以选择安装二进制版本,或者编译源程序生成SCILAB。 1.2 SCILAB主窗口介绍
1.3 SCILAB中的基本操作与预定对象 1.3.1 SCILAB的工作环境的存取 可采用save load 函数对工作环境进行存取。 例如: save work.dat save(‘work.dat’,A,x) load work.dat 1.3.2 界面层次的控制操作
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)');

Scilab程序设计教程_v0.02

Scilab程序设计教程_v0.02

Scilab程序设计教程内容摘要本书是为适应教学的需要而编写。

全书以Scilab4.1版为基础,介绍Scilab程序设计的方法与应用,主要内容包括:Scilab操作基础、Scilab矩阵及其运算、Scilab程序设计、Scilab 文件操作、Scilab绘图、Scilab数据分析与多项式计算、Scicos图形化仿真环境以及Scilab 常用工具箱。

本书符合教学规律和特点,内容丰富、取材新颖、注重实用、便于教学。

本书可作为高校理工科各专业大学生、研究生学习的教材,也可供广大科技工作者阅读使用。

编者列表:序前言目录1. Scilab基础 (4)1.1. Scilab概述 (4)1.2. Scilab的运行环境与安装 (4)1.3. Scilab集成环境 (6)1.4. Scilab帮助系统 (8)2. Scilab矩阵及其运算 (8)2.1.变量和数据操作 (8)2.2. Scilab矩阵 (11)2.3. Scilab运算 (15)2.4.字符串 (16)2.5.稀疏矩阵 (20)3. Scilab程序设计 (17)3.1. SCI文件 (17)3.2.程序控制结构 (17)3.3.函数文件 (18)3.4.程序举例 (18)3.5.程序调试 (18)4. Scilab文件操作 (19)4.1.文件的打开与关闭 (19)4.2.文件的读写操作 (19)4.3.数据文件定位 (19)5. Scilab绘图 (19)5.1.二维数据曲线图 (19)5.2.其他二维图形 (19)5.3.三维图形 (19)5.4.图形修饰处理 (19)5.5.图像处理及动画制作 (19)6. Scilab数据分析与多项式计算 (20)6.1.数据统计处理 (20)6.2.数据插值 (20)6.3.曲线拟合 (20)6.4.离散傅立叶变换 (20)6.5.多项式计算 (20)7. Scilab解方程与函数极值............................................................................. 错误!未定义书签。

Scilab基本实际操作

Scilab基本实际操作
>> format(12)表示设置数据格式为12位.
Scilab 预定义的一些常数:
i: 基本虚数单位
pi: 圆周率(π=3.1415926...)
e: 欧拉常数(е=2.7182818...)
inf: 表示无限大, 例如1/0
nan或NaN: 表示非数值(Not a number), 例如0/0
>> Scilab将所有数值均保存为double形式,故不需要变量声明,Scilab会自动进行变量的创建和 回收。
>> Scilab的基本运算符:加(+)、 减(-)、 乘(*)、 除(/)、指数(^); 上述运算符不仅运用于通常实数之间计算,也可运用于矩阵的运算。
>> 变量赋值语句一般格式:
变量名 = 数值 或变量组成表达式 或字符串
x= 0 0.2 0.4 0.6 0.8 1.
-->x=0:0.2:1; -->y=x.*x
// 生成当x=0,0.2,0.4,0.6,0.8,1时, y=x2函数值序列
y= 0 0.04 0.16 0.36 0.64 1.
>> 表达式 y=x.*x中的“.*”表示对应元素相乘; 另外(./)表示对应元素相除,(.^)表示对应元素求幂.
-0.0044772
Scilab变量命名规则 1.变量名必须是英文字母,区分大小写 2.字母间不可留空格
>> Scilab显示当前数据格式是10位(含数值符号),如下图:
>> 函数指令format( )的作用是返回当前数据格式的位数. ans=1. 10. (计算结果ans返回的是行列的矩阵形式) 表示当前数据格式是10位(含数值符号“+,-”,正数的符号“+”一般不显示).

scilab使用辅导

scilab使用辅导
信息技术教研组 袁中果
Hale Waihona Puke 国人民大学附属中学练习P22
信息技术教研组 袁中果
中国人民大学附属中学
复杂判断结构
If 表达式 1 语句序列1 elseif表达式 1 语句序列2 else 语句序列3 …… end
信息技术教研组 袁中果
中国人民大学附属中学
练习
给出一个百分制成绩,要求输出成 绩等级‘A’、 ‘B’、 ‘C’、 ‘D’、 ‘E’。90分以上为‘A’ ,80~89分为 ‘B’,70~79分为‘C’,60~69分为 ‘D’,60分以下为‘E’。
信息技术教研组 袁中果
中国人民大学附属中学
三种基本结构
循环结构
While型 Until型
A
A
P1 Y 成立 N成立
P2
不成立
图2.7
信息技术教研组 袁中果
中国人民大学附属中学
选择结构
If 表达式 语句序列1 else
语句序列2
If 表达式 语句序列1 end
end
信息技术教研组 袁中果
中国人民大学附属中学
信息技术教研组 袁中果
中国人民大学附属中学
P7练习A 4
3x-2y+z=-4 5x+2y-3z=12 x+3y+5z=-1 x+y+z=12 3x=3y-z=16 x-y-z=-2
信息技术教研组 袁中果
中国人民大学附属中学
程序设计
变量 在scilab中变量的定义是很自由的,几乎大部 分的字串都可以做变量。例如x=3;a2=14; 但是 变量开头不可以是数字。同時也不可以將Scilab 內定常量更改它的数值。 常量 Scilab的內定常常多半以‘%’開頭,例如圓周 率π,它以‘%pi’來表示。自然常數e:%e。虛 數i:%i。如對這些常量重新定义會出現錯誤信 息。

实验七 用Scilab解常微分方程

实验七 用Scilab解常微分方程

实验七用Scilab解常微分方程引言常微分方程是数学中的重要分支,它描述了许多自然现象和工程问题的演化过程。

随着计算机技术的发展,用计算机求解常微分方程的方法得到了广泛应用,其中Scilab是一种功能强大且易于使用的数值计算软件。

本实验将以Scilab为工具,通过实际案例演示如何使用Scilab求解常微分方程问题。

实验内容1. 安装Scilab2. 打开Scilab完成安装后,打开Scilab软件。

在命令窗口中输入以下命令,载入求解常微分方程的相关模块。

// 载入ODE模块load("ode.sci")3. 定义常微分方程在Scilab中,定义常微分方程需要使用函数来描述,例如以下形式的一阶常微分方程:function dydt = myODE(t, y)dydt = -2*t*y;endfunction这个例子中,常微分方程是 dy/dt = -2*t*y。

4. 使用Scilab求解常微分方程在Scilab中,使用`ode`函数来求解常微分方程。

例如,使用以下命令求解初始条件为 y(0) = 1 的常微分方程:t = 0:0.1:10; // 定义求解范围y0 = 1; // 初始条件[t, y] = ode(t, y0, myODE); // 求解常微分方程这个例子中,求解范围是 t=0 到 t=10,初始条件为 y(0) = 1,`ode`函数会返回求解结果。

你可以通过绘图函数绘制出常微分方程的解曲线。

5. 实际案例通过实际案例来演示如何使用Scilab求解常微分方程。

以受阻射击的运动问题为例,其常微分方程为dy/dt = v,dv/dt = -k/m * v,其中y表示位移,v表示速度,k和m分别表示阻力和质量。

function dydt = myODE(t, y)dydt = [y(2);-k/m*y(2)];endfunctiont = 0:0.01:10; // 定义求解范围y0 = [0, 10]; // 初始条件:y(0) = 0, v(0) = 10[t, y] = ode(t, y0, myODE); // 求解常微分方程// 绘制位移随时间的曲线plot(t, y(:,1), "r-")xlabel("时间")ylabel("位移")结论本实验使用了Scilab软件来求解常微分方程问题,通过实际案例的演示,展示了使用Scilab编写常微分方程函数、调用`ode`函数求解常微分方程,并绘制解曲线的步骤和方法。

第1章 SCILAB基础

第1章 SCILAB基础

第一章SCILAB基础本章内容是后续所有内容的基础,读者可以通过本章的学习,了解计算科学软件SCILAB\SCICOS的基本功能和基本操作方法,特别是对SCICOS模块库或工具箱的概念和作用有所了解。

本章需解决的关键问题:SCILAB是什么?可以做什么?如何操作?SCICOS是什么?如何操作?SCICOS和SCILAB之间是什么关系?什么是工具箱?如何安装和加载?本章主要内容:SCILAB基本知识和基本操作;SCICOS基本知识和基本操作;SCICOS工具箱的概念和工具箱的加载方法;本章阅读建议:本章的内容不同于理论知识的学习,建议读者在阅读本章全文的过程中,结合书中讲解,动手在平台上进行操作演练,有助于加深理解和消化本章内容。

本章主要是为初学者提供帮助,已经具备SCILAB\SCICOS基本知识、熟悉其基本操作的读者,可不用学习本章内容。

1.1SCILAB介绍1.1.1 关于SCILAB通用科学软件目前有两大类:进行符号运算的计算机代数系统(Computer Algebra Systems);进行数值计算和专门科学应用设计的通用数值系统(General Purpose Numerical Systems)。

第一类中较为出名的有Maple、Mathematical、Maxima、Axiom和Mupad等,第二类则以MATLAB为代表。

自由开源软件SCILAB就属于第二类。

SCILAB最初是由INRIA 和ENPC 开发,现在由SCILAB 协会维护的开放源代码的科学计算软件。

具有矩阵运算、数值运算、信号处理、程序设计等功能,目前已被广泛应用于教育、科研和工业。

1.1.2 SCILAB基本知识本书内容基于SCILAB 4.1.2版本平台而编写。

此版本软件可以从SCILAB官方主页的链接()下载。

SCILAB中指令和程序的运行可以分为三种情况:命令窗口下的逐句执行、脚本文件的执行、以及SCI函数形式的调用。

Scilab工具箱:线性动态系统故障检测和隔离的信号检测设计用户指南说明书

Scilab工具箱:线性动态系统故障检测和隔离的信号检测设计用户指南说明书
Toolbox Scilab : Detection signal design for failure detection and isolation for linear dynamic systems
User’s Guide
Hector E. Rubio Scola
To cite this version:
4.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.1 How to use the sigtest function . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Test signal design
12
4.1 Main functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.1 Utility functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Hector E. Rubio Scola. Toolbox Scilab : Detection signal design for failure detection and isolation for linear dynamic systems User’s Guide. RT-0241, INRIA. 2000, pp.16. inria-00069931
4.2.2 How to use the sigintest function . . . . . . . . . . . . . . . . . . . . . . . . 15

第一讲 Scilab基本操作

第一讲  Scilab基本操作

-->x=0:0.2:1; -->y=x.*x
// 生成当x=0,0.2,0.4,0.6,0.8,1时, 0.16 0.36 0.64
y=x2函数值序列
y =
0 0.04 1.
>> 表达式 y=x.*x中的“.*”表示对应元素相乘; 另外(./)表示对应元素相除,(.^)表示对应元素求幂.
-->x=0:0.2:1; -->y=x.^2 y =
>> 在Command窗口下进行数学运算,只需将表达式直接输入提示号(--> )之后,并按【Enter】 键即可。Scilab会将计算结果直接存入变量ans,代表Scilab运算后的答案 (Answer),并在 Command窗口下显示其数值。 >> Scilab将所有数值均保存为double形式,故不需要变量声明,Scilab会自动进行变量的创建和 回收。 >> Scilab的基本运算符:加(+)、 减(-)、 乘(*)、 除(/)、指数(^); 上述运算符不仅运用于通常实数之间计算,也可运用于矩阵的运算。
Scilab 预定义的一些常数: i: 基本虚数单位 pi: 圆周率(π=3.1415926...) e: 欧拉常数(е=2.7182818...) inf: 表示无限大, 例如1/0 nan或NaN: 表示非数值(Not a number), 例如0/0
注: 在使用预定义常数之前加%,如下图。
【例2-2】简单矩阵的输入和运算。
0
0.04
0.16
0.36
0.64
1.
Scilab常用的基本数学函数
abs(x): 纯量的绝对值或向量的模 sqrt(x):开平方 fix(x): 求实数x的整数部分 modulo(x,y):求x除以y余数 round(x):四舍五入至最近整数 floor(x):不超过x的最大整数 sign(x): 符号函数 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 exp(x):自然指数 log(x):以e为底的对数,即自然对数 log2(x):以2为底的对数 log10(x):以10为底的对数 sin(x): 正弦函数 cos(x):余弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反余弦函数 atan(x):反正切函数

scilab中文帮助手册

scilab中文帮助手册

(1)程序设计programming:abort: 中断计算说明:abort命令中断当前计算并给出Scilab的提示符(“-->”)。

如果用户使用pause命令进入高层界面,可使用abort命令回到初始层界面,出现Scilab的提示符(“-->”)。

Ans: 计算结果说明:如果表达式的值没有被赋与任何变量,那么Scilab自动产生一个变量Ans,用来存储当前表达式的值。

backslash (\):矩阵左除调用格式:如x=A\b说明:backslash (\)代表矩阵左除,x=A\b是方程A*x=b的解。

如果A是一个方阵或者可逆矩阵(nonsingular或者invertible),那么x=A\b是方程A*x=b 的唯一确定的解,且等于x=inv(A)*b.(通俗的说,就是方程数目等于未知数个数,所以解唯一。

如A=[1 2 1;3 2 2;2 3 1],b=[8;13;11])如果A不是一个方阵,那么x是最小二乘解,此时,该解x使norm(A*x-b)最小。

(通俗的说,就是方程数目不等于未知数个数。

如果方程数目大于未知数个数,本来是没有准确解的,但可以根据最小二乘法原理拟合出最佳解。

如A=rand(3,2);b=[1;1;1]。

此时,由于A不是一个方阵,无法使用inv(A)命令,因此x=A\b等效于x=pinv(A)*b.如果方程数目小于未知数个数,应该有无穷个解,用x=A\b命令得出的解只是其中的一个解,而用pinv(A)*b命令得出的解则比较粗糙,没有用x=A\b命令得出的解精确。

)如果A是一个列满秩矩阵(矩阵的秩等于列数),那么此最小二乘解x=A\b是唯一能使norm(A*x-b)最小的解。

如果A不是一个列满秩矩阵,那么此最小二乘解x=A\b不能使norm(A*x-b)最小,使norm(A*x-b)最小的解应该是x=pinv(A)*b)。

inv(A)要求A是方阵,pinv(A)则不要求A是方阵bool2s :将布尔矩阵转化为0、1矩阵调用格式:bool2s(x)参数:x是一个布尔向量或者布尔矩阵或者常数矩阵。

《讲Scilab基本操作》课件

《讲Scilab基本操作》课件
《讲Scilab基本操作》PPT 课件
通过这个PPT课件,我们将学习Scilab的基本操作,让你在科学计算方面快速 上手。准备好探索Scilab的世界吧!
一、Scilab的介绍
Scilab的概述
了解Scilab是一个开源的数 值计算和数据分析软件, 适用于工程学、科学研究 和教育领域。
Scilab的特点
探讨Scilab在不同领域的应用 前景,如工程学、科学研究 和数据分析。
Scilab的学习建议和 总结
提供学习Scilab的建议和总结, 帮助大家更好地掌握Scilab的 基本操作。
Scilab的数据分析与拟 合
掌握如何使用Scilab进行数 据分析和曲线拟合,以从 数据中获得有用信息。
Scilab与其他编程语言 的集成
了解如何将Scilab与其他编 程语言集成,从ቤተ መጻሕፍቲ ባይዱ扩展其 功能和应用领域。
五、Scilab常见问题解答
1 Scilab的常见错误及解决方法
指导解决常见的Scilab错误,如语法问题、函数调用和脚本调试。
2 Scilab的优化与调试技巧
分享Scilab的性能优化和调试技巧,确保代码的正确性和效率。
3 Scilab的相关资源推荐
为学习Scilab提供相关资源推荐,如文档、教程和论坛。
结束语
Scilab的未来发展
展望Scilab的未来发展方向, 包括新功能、性能改进和社 区贡献。
Scilab的应用前景
掌握Scilab的特性,如多维 数组、函数库、图形显示 和内置编辑器等。
Scilab的优势
了解为什么Scilab是一种强 大的工具,可以用于解决 复杂的数学和工程问题。
二、Scilab的安装与环境配置

高中数学里,scilab 的辅助应用

高中数学里,scilab 的辅助应用

簡單的快速入門:
1。把 help 的範例碼存到文字檔 這是 help 裏的 xgrid 的範例(在 scilab 主控台(console)下指令 help xgrid) x=[0:0.1:2*%pi]'; plot2d(sin(x)) xgrid(3) 存在 SCI/myexam/xgrid_01.txt (SCI 是安裝的路徑,在 win xp 下可能是 D:\Program Files\scilab-5.2.2\) 2。使用 exec 指令執行 然在在 scilab 主控台(console)下指令。 exec SCI/myexam/xgrid_01.txt 3。看結果
執行後輸出 ym = 1.5 xm = 0.5
二。求極限的輔助:
將 scilab 當電子計算機使用,拿來求極限,極限常常是逼近於 0,小數點的計算對一般人筆 算很吃力,交給電腦算完後,畫成圖,快速抓到感覺 題目: sin(x)/x 在 x=0 的極限 指令如下 x=[-0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 ] y=sin(x) z=y./x 輸出如下 x = – 0.1 - 0.01 - 0.001 - 0.0001 0.0001 0.001 0.01 y = column 1 to 6 - 0.0998334 - 0.0099998 - 0.0010000 - 0.0001 0.0001 0.0010000 column 7 0.0099998 z = column 1 to 6 0.9983342 0.9999833 0.9999998 1. 1. 0.9999998 column 7 0.9999833 雖然是很尋常的事,但是想想,當 x 趨進於 0,其實 有 x^2(次方) ,x^3, x^1/2(平方根)也趨 進於 0,但是就是沒有像 sin(x)和 x 趨近的速度那麼一致,舉 x^1/2(平方根,sqrt(x))為例: x=[0.0001 0.001 0.01 0.1] y=sqrt(x) z=y./x 計算結果為 y=0.01 0.0316228 0.1 0.3162278 z=100. 31.622777 10. 3.1622777 (發散的結果) 再舉 x^2(次方) 為例: x=[-0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 0.1] y=x^2 z=y./x 計算結果為 y=0.01 0.0001 0.000001 1.000D-08 1.000D-08 0.000001 0.0001 z=- 0.1 - 0.01 - 0.001 - 0.0001 0.0001 0.001 0.01 0.1 (趨進於 0)

Scilab 教学

Scilab 教学

• for i=初值:终值 • While 表达式
切记:循环条件可以与循环体写 在一行,但需在中间加逗号。
总结+技巧
• 循环体结尾必有“end” • 代码的可读性很重要(主要是因为有些句子后并没有;使得代码 在不分层情况下很恶心)
• 最好一行一行写,不要贪图省行数 • 同一层的代码缩进同样的格数
1.2.3 实际运用
eg1
• 小明很喜欢算数。有一天,小亮告诉他了一个数N(N>100且为 整数),小明将从1~n中的所有数加和,并满足:若n是2的倍数 便直接加,若除以2余1则先乘以(n-1)/2再相加,; • 求最后的和。 • 画框图,写代码
n=input("input n-->"); s=0; for i=1:1:n if i/2==0 s=s+i; else s=i*(i-1)/2; end end print(%io(2),s);
1.2 基本算法语句
----Scilab的使用
Scilab?
• 一个数学计算软件 • Scilab==science + lab
认识scilab
• 优越性:
• 专门进行数学计算 • 开源 免费
1.2.1 三种基本语句
赋值语句
• = 一个等号 • 复制的顺序:右边覆盖左边,无论右边是否包含自己
• 关于赋值:一步步来,不行在纸上写写试试
1.2.2 条件&循环
条件语句if
• if a<0 • else
• print(%io(2),a); • print(%io(2),-a);
• end
循环语句
• for i=初值:步长:终值
• 循环体; • end • 循环体; • end • 循环体; • end

附录2 Scilab特殊矩阵赋值和字符串操作

附录2  Scilab特殊矩阵赋值和字符串操作

特殊矩阵赋值和字符串操作一.行、列向量赋值(1) 矩阵转置-->a=[1,2;3,4];-->a'ans =1. 3.2. 4.(2) 矩阵合并-->x1=[1,2;3,4];-->x2=[9,8;7,6];-->x=[x1,x2]x =1. 2. 9. 8.3. 4. 7. 6.-->y=[x1;x2]y =1. 2.3. 4.9. 8.7. 6.(3)-->a=[1,2;3,4]a =1. 2.3. 4.-->b=a(1,:) //得到矩阵a的第一行b =1. 2.-->b=a(:,2) //得到矩阵a的第二列b =2.4.(4)-->a=[1,2;3,4];-->b=[5,6;7,8]b =5. 6.7. 8.-->a(1,:)=b(1,:)//将矩阵a的第一行替换为矩阵b的第一行a =5. 6.3. 4.-->a(:,2)=b(:,2)//将矩阵a的第2列替换为矩阵b的第2列a =5. 6.3. 8.(5)-->a=[1,2,3;4,5,6;7,8,9]a =1. 2. 3.4. 5. 6.7. 8. 9.-->b=a(2:3,:)//得到矩阵a的第2行和第3行b =4. 5. 6.7. 8. 9.二.字符串操作(1) 字符串连接-->s ="aaa"+"bbb" //Scilab中的字符串可以直接运算 s =aaabbb-->strcat(['aaa','bbb'])ans =aaabbb-->strcat(string(1:10),',')ans =1,2,3,4,5,6,7,8,9,10(2) 字符串查找 i=strindex(str1,str2)-->i=strindex("abcdef","bc")i =2.(3)大小写转换-->s = convstr("abc",'u') //小写变大写s =ABC-->s = convstr("ABC",'l') //大写变小写s =abc(4)字符串替换-->strsubst('abcdef','bc','00')ans =a00def(5)字符串长度 length-->n=length('abcdefg')n =7.(6)字符串转换 string-->a=string(12) //此时a是字符串变量a =12-->a+'23'ans =1223-->str="今年是"+string(2008)+"年"str =今年是2008年(7) 将SCILAB数码转换为字符串 code2str -->code2str(12)ans =c(8) 将字符串转换为SCILAB数码 str2code -->str2code("12yn89")ans =1.2.34.23.8.9。

scilab-使用教程

scilab-使用教程

与MATLAB的互操作性
01
SCILAB可以与MATLAB进行互 操作,允许用户在SCILAB中调 用MATLAB函数或编辑器中的 脚本。
02
互操作性可以通过MATLAB Engine API for Scilab实现, 该API提供了与MATLAB的接 口,以便在SCILAB中执行 MATLAB代码。
图像处理
SCILAB提供了图像处理和分析的功能,可以用 于图像处理和计算机视觉等领域。
ABCD
工程仿真
SCILAB可以用于工程设计和仿真的数值计算和 分析,如流体动力学、结构力学等。
系统控制
SCILAB可以用于控制系统设计和分析,如控制 系统仿真和优化等。
02 SCILAB基础操作
启动与退出SCILAB
易用性
SCILAB的用户界面友好,易于学 习和使用,支持多种编程语言接 口,方便用户进行编程和开发。
开放性
SCILAB是开源软件,用户可以自 由获取和使用源代码,并根据自 己的需求进行定制和开发。
SCILAB的应用领域
科学计算
SCILAB广阵元素
使用单引号或双引号将元素索引括起来,例如 `A(1,1)`或`A"[1,1]"`。
矩阵运算
支持常见的矩阵运算,如加法、减法、乘法 等。
03 SCILAB编程基础
控制流语句
顺序执行
SCILAB中的代码按照从上到下的顺序 执行,无需使用特定的控制流语句。
循环语句
使用`for`循环重复执行特定代码块, 例如`for i=1:10, statements, endfor`。
初值条件
求解常微分方程时需要指定初值条件,可以使用"="指定初值。例如, y(t0)=y0将指定在t0时刻的初值。

scilab中文手册

scilab中文手册

. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
2 Scilab 簡易教學 2.1 啟動 . . . . . . . . . . . . . . . . . . . . 2.2 編輯 . . . . . . . . . . . . . . . . . . . . 2.3 變數宣告、分行、多行連結及註解 . . 2.4 計算環境、系統變數、常數及特殊變數 2.5 矩陣數內容的設定及讀取 . . . . . . . . 2.6 函數呼叫 . . . . . . . . . . . . . . . . . 2.7 使用多項式 . . . . . . . . . . . . . . . . 2.8 多項式矩陣及行列式之符號運算 . . . . 2.9 分式多項式矩陣及其分子及分母多項式 2.10 計算環境之層次 . . . . . . . . . . . . . 2.11 頻率響應及繪圖 . . . . . . . . . . . . . 2.12 合成函數 . . . . . . . . . . . . . . . . . 2.13 動態系統、狀態空間及轉換函數 . . . . 2.14 狀態空間資料的詳細內容 . . . . . . . . 2.15 動態子系統之並聯 . . . . . . . . . . . . 2.16 設計 Scilab 函數 . . . . . . . . . . . . . 2.17 補償器設計範例 . . . . . . . . . . . . . 2.18 執行系統指令 . . . . . . . . . . . . . . 2.19 以 Fortran 或 C 語言提供動態程式庫 . . 2.20 常微分方程組應用範例 . . . . . . . . . 2.21 運算子設計 . . . . . . . . . . . . . . . . 2.22 函數參數的傳遞 . . . . . . . . . . . . . 3 操作環境 3.1 輸入輸出及環境 . . . . . 3.1.1 環境 . . . . . . . 3.1.2 Scilab 之啟動指令 3.1.3 輸入及輸出 . . .

scilab 画函数

scilab 画函数

scilab 画函数使用Scilab 画函数Scilab是一种开源的数值计算软件,可以用于数值分析、数据可视化、模拟和仿真等多种科学计算任务。

在Scilab中,我们可以利用其强大的绘图功能来画出各种函数图形,以更直观地理解函数的特性和行为。

本文将介绍如何使用Scilab画函数,并以一些例子来说明。

我们需要安装Scilab并打开软件。

在Scilab的命令行界面中,我们可以直接输入函数并绘制函数图形。

例如,我们可以输入以下命令来画出函数y = sin(x)的图像:```x = linspace(0, 2*%pi, 100);y = sin(x);plot(x, y);```在上述命令中,我们首先使用linspace函数生成了一个包含100个点的等间隔的x坐标向量。

然后,我们使用sin函数计算了对应的y坐标向量。

最后,我们使用plot函数将x和y的值绘制成曲线图。

除了绘制曲线图外,Scilab还支持绘制散点图、柱状图、面积图等多种类型的图形。

例如,我们可以使用以下命令来画出函数y =x^2的散点图:```x = linspace(-10, 10, 100);y = x.^2;scatter(x, y);```在上述命令中,我们首先生成了一个包含100个点的等间隔的x坐标向量。

然后,我们使用.^操作符对x的每个元素进行平方运算,得到对应的y坐标向量。

最后,我们使用scatter函数将x和y的值绘制成散点图。

除了简单的函数绘制外,Scilab还支持绘制多个函数的图形,并可以对图形进行自定义设置。

例如,我们可以使用以下命令来画出函数y = sin(x)和y = cos(x)的图像,并对图像进行设置:```x = linspace(0, 2*%pi, 100);y1 = sin(x);y2 = cos(x);plot(x, y1, 'r');hold on;plot(x, y2, 'b--');title('Sin and Cos functions');xlabel('x');ylabel('y');legend('sin', 'cos');grid on;```在上述命令中,我们首先分别计算了函数y = sin(x)和y = cos(x)的y坐标向量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.9.3 与处理字符串有关的一些常用函数 ascii 从字符型转换成ASCII值; execstr 把字符串传给Scilab解释器; grep 查找在字符矩阵中是否出现该字符串; part 提取字字符串 strindex 在字符串中查找字符串 string 把数据转换成字符型 stripblanks 删除开头和结尾的空格 strubst 在字符矩阵中替换该字符串 strcat 把字符矩阵各元素的字符串串连起来 length 求字符矩阵各字符串元素的长度 convstr 字符串的大小写转换
2.6 向量与矩阵(数组)元素的引用 b(k) 表示向量b的第k个元素 a(i,j) 表示矩阵a的第(i,j)个元素 可以用函数find(条件表达式)来寻找所需的元素。 a($)表示a的最后一个元素。 a($-1) 表示倒数 第二个元素 还可以用逻辑符号来提取矩阵的元素,例如:
2.7 整型数组 采用int8()和int32()把一个数转化为整数。 a=int8(4); b=int8(5); c=a/b 结果为0 2.8 布尔型向量与矩阵的定义及基本运算 逻辑运算:与(&),或(|),非(~); 关系运算:==, >,<,>=,<=,~= 2.9 字符串型数据的定义与运算 2.9.1 字符串的定义 字符串一般用单引号(’)或双引号 (‛)括起来。 还可以定义字符串矩阵。 2.9.2 字符串的运算 可采用‚+‛将两个字符串连起来。
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()差不多。
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):将对角线向左下方移动一排
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()加载定义函数的脚本文件。
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);
第3章 SCILAB中的程序设计、 脚本文件与函数
3.3 选择结构程序设计 3.3.1 if语句 3.3.2 selectcase语句 3.4 循环结构程序设计 3.4.1 for语句 3.4.2 while 语句 3.4.3 循环语句的嵌套(多重循环语句) 3.4.4 continue语句和break语句
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’])) 矩阵(数组)或向量元素的逐项求积
M=tlist([‘V(无意义)','name','value'],['a','b','c'],[1 2 3]);
第3章 SCILAB中的程序设计、 脚本文件与函数
3.1 引言 3.2 顺序结构程序设计 3.2.1 赋值语句 变量名=表达式; 表达式是由变量名加运算符所组成的式子; 在变量名中区分大小写,有效字符是19个。 3.2.2 输入输出语句 input(); disp(); read(); write(); printf();
第1章 SCILAB简介
1.1 SCILAB的安装 SCILAB可以从官方网站 上下载,用户 可以选择安装二进制版本,或者编译源程序生成SCILAB。
1.2 SCILAB主窗口介绍
1.3 SCILAB中的基本操作与预定对象 1.3.1 SCILAB的工作环境的存取 可采用save load 函数对工作环境进行存取。 例如: save work.dat save(‘work.dat’,A,x) load work.dat 1.3.2 界面层次的控制操作
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采用域来定义表;例如: mlist类型表中的元素不可以索引来访问存储的对象。 ((2)得到name的第二个元素b)
1.3.3 SCILAB主窗口中的快捷键操作
1.3.4 SCILAB中预先定义的对象 可以用Whos和 who 查看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 数值型向量与矩阵的定义 矩阵元素放在[ ]中,每行用‚;‛分隔开,每列用‚,‛ (或用空格)分隔开。
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);
3.5.3 局部变量与全局变量、函数的嵌套定义与递归调用
使用global 定义全局变量。 在scilab中,可以嵌套定义函数,例如:
在scilab中函数还可以递归调用,例如
3.5.4 有关程序调试的几个常用指令 pause, resume, abort
第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算 包括矩阵的加法(+),减法(-),共轭转置(’),乘法(*), 左除(A/B是指 AB 1 ),右除(A\B是指 A1 B ),幂(^), 逐元相乘(.*),逐元相除(./),逐元取幂(.^) 等运算。 2.5 与数值型矩阵有关的若干常用函数 2.5.1 常用矩阵的生成函数 diag 生成对角矩阵 diag([1,2,3]) ;和空格也可以 eye 生成单位矩阵 rand 生成随机矩阵 ones 生成全部元素为1的矩阵 zeros 生成零矩阵。 linspace(或‚:‛) 生成线性分布的向量。
相关文档
最新文档