Octave 介绍

2024-03-02 01:58
文章标签 介绍 octave

本文主要是介绍Octave 介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GNU Octave是一种主要用于数值计算的高级语言,它通常用于求解线性和非线性方程等问题,数值线性代数、统计分析、以及执行其他数值实验,它也可以被用来作为面向批处理的语言自动数据处理。

Octave的当前版本在一个图形用户界面(GUI)中执行。GUI 管理了一个集成环境。其中包括,代码语法高亮的编辑器,内置的调试器,文件浏览器,以及自身的语言编译器。还提供了一个命令行界面。

GNU Octave是一款完全不受限制的,可再发行的软件。你可能会根据自由软件基金会发布的GNU通用公共许可的条款来发布或者是修改它,本手册中包含GPL。

本手册提供全面的文档以了解如何安装、运行、使用和扩展GNU Octave,其他章节描述了如何报告bug和帮助贡献代码。

该文件对应于Octave版本4.2.1

1.1 运行 Octave

在大多数系统中,Octave是开始于shell命令'octave',这将启动图形用户界面。 中央窗口GUI是Octave中的命令行界面,在此窗口中Octave初始化消息,然后显示一个提示,表明它已准备好接受输入,如果你选择了传统的命令行界面,在同一窗口中就只显示命令提示符运行的shell,在任何一种情况下,您都可以立即开始键入Octave命令。

如果你遇到麻烦,你通常可以通过键入中断Octave 'Control-C'(缩写是‘C-c’),当你按住<ctrl>并且按<c>,‘C-c’可以获得它的名称(不懂),这样做通常会返回到Octave 的提示。
退出Octave,键入'quit'或'exit'。在支持作业控制的系统上,您可以通过发送  'SIGTSTP'  信号来暂停Octave,通常通过键入C-z'


1.2 一个简单的例子

下面的章节详细描述Octave的所有功能,但在此之前,先给出一些例子或许会有所帮助。如果您刚刚开始学习Octave,我们建议您先试试这些示例。
像这样行标记‘octave:13>’是你开始输入的标识,然后通过回车结束输入,Octave会返回结果,或者会返回图像,这取决于你输入的命令。

1.2.1 初级计算

Octave可以很容易地用于数值计算,Octave知道算术运算(+、-、/),幂(^),自然对数或指数(log、exp)和三角函数(sin、cos.)。此外,Octave还可以计算实数和虚数(i,j)
另外,一些数学常数等自然对数的底(e)和一个圆的周长与其直径的比率(pi)是已经预定义的。

例如,为了验证欧拉恒等式

i*pi=-1

输入:exp (i*pi)

1.2.2 建立一个矩阵

向量和矩阵是数值分析的基本构建模块 ,创建一个新的矩阵并将其存储在变量中,以便你可以日后参考它

octave:1> A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]


Octave会打印出一个严格列对齐的矩阵。Octave使用逗号或空格分隔行中的条目,和一个分号或回车分隔下一行。用分号结束命令,告诉程序不打印命令的结果。

octave:2> B = rand (3, 2);

将创建一个3行2列的矩阵,每个元素设置为零和一之间的一个随机值。

要显示变量的值,只需在提示符下键入变量的名称。例如,要显示存储的值矩阵中的'B',键入以下命令

octave:3> B

1.2.3 矩阵运算

Octave使用标准的数学表示法与低级语言的优势,这些优势可能是它们的运算符对标量、向量、矩阵或N-维数组的操作。例如,与矩阵'A'相乘,请键入命令

octave:4> 2 * A

‘A’和‘B’相乘,键入以下命令

octave:5> A * B

矩阵‘A’与其转置矩阵(A)'相乘,键入以下命令

octave:6> A' * A

1.2.4 解线性系统方程

数值分析中的线性方程组是无处不在。解决线性方程AX=b,使用除法运算符,‘\’

X = A \ b

这是概念上等同于 ‘inv (A) * b’但避免直接逆矩阵的计算。

如果系数矩阵奇异,八度音阶会打印一个警告消息,并计算最小范数解。 未验证

一个简单的例子来自于化学和化学平衡方程。考虑燃烧氢和氧的化学反应。

H2 + O2 --> H2O

上面的公式是不准确的。 根据质量守恒定律,平衡方程两边,每种类型的微粒的数量是相等的。编写方程:

x1*H2 + x2*O2 --> H2O
H: 2*x1 + 0*x2 --> 2
O: 0*x1 + 2*x2 --> 1

Octave中的解决方案只需三个步骤:

octave:1> A = [ 2, 0; 0, 2 ];

octave:2> b = [ 2; 1 ];

octave:2> b = [ 2; 1 ];


1.2.5 结合微分方程


Octave具有内置函数用于求解非线性微分方程

dx

-- = f (x, t)

dt


已知初始条件


x(t = t0) = x0


对于Octave,为了整合像这样形式的方程,您必须先提供一个定义的函数'f(x,t)'可通过命令行直接输入函数体来完成。例如,下面的命令定义了右侧一个有趣的非线性微分方程的方法,请注意,虽然您正在进入一个函数,Octave有不同的提示作出响应,以表明它正在等待你完成你的输入。


     octave:1> function xdot = f (x, t)

     >
     >  r = 0.25;
     >  k = 1.4;
     >  a = 1.5;
     >  b = 0.16;
     >  c = 0.9;
     >  d = 0.8;
     >
     >  xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1));
     >  xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);
     >
     > endfunction


给定初始条件

octave:2> x0 = [1; 2];

和输出时间为一个列向量的设置(注意,第一个输出时间对应于上述初始状态)

octave:3> t = linspace (0, 50, 200)';

很容易整合微分方程组

octave:4> x = lsode ("f", x0, t);


方法'lsode'使用利弗莫尔求解常微分方程

1.2.6 图像输出

以图形方式显示解决前面的示例,请使用以下命令

octave:1> plot (t, x)

Octave将自动创建一个单独的窗口来显示

需要保存屏幕上的图像,用以下命令

print -dpdf foo.pdf

将创建一个文件名为'foo.pdf',包含可移植文档格式的电流图的渲染。

help print 会获得更多关于print的信息。



这篇关于Octave 介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/764570

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信

目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds  总结  fd_set操作接口  timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充  获取新连接 注意点 -- 通信时的调用函数 添加新fd到

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器