MATLAB GNU Octave教程

GNUOctave是一种免费的MATLAB替代品,支持矩阵运算和数值计算,且有丰富的C++接口。大部分MATLAB代码可在Octave中运行,但两者存在语法差异,如MATLAB仅支持单引号字符串。文章举例展示了MATLAB和Octave在3D绘图和积分计算上的异同,表明在某些特定功能上,如符号计算,Octave需要额外的包支持。
摘要由CSDN通过智能技术生成

GNU Octave 是一种高级编程语言,像 MATLAB,它主要是用 MATLAB 兼容。

GNU Octave 也可以用来进行数值计算,还有丰富的 C++ 接口可以让用户编程时调用。

Octave 和 MATLAB 共同的特点

  • 矩阵的基本数据类型

  • 它内置支持复数

  • 它具有内置数学函数和库

  • 它支持用户自定义功能

GNU Octave 是自由可再分发的软件,这意味着你可以在自由软件基金会发布的GNU通用公共许可证(GPL)的条款下重新分配或对它进行修改。

MATLAB 和 Octave

极大一部分的 MATLAB 程序运行在 Octave,但是有一些 Octave 支持的语法是 MATLAB 不支持的,所以这些 Octave 程序可能无法正常运行。

就好比 MATLAB 只支持单引号,但是Octave能够支持单,双引号来定义字符串

兼容的示例

本教程中涉及的几乎所有的例子都是用 MATLAB 以及 Octave 兼容。

在 MATLAB 和 Octave 试试下面的例子,没有任何语法的变化并且会有相同的结果产生:

以下例子中将建立一个3D表面地图函数 g = xe-(x2 + y2) 。

在MATLAB中建立一个脚本文件,并输入下述代码:

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

运行该文件,显示出的3-D地图:

不兼容的例子

MATLAB 中有一部分功能是不能够在 Octave 中使用的,举几个例子:微分和积分积分,无论是从语言还是其他角度,这并不完全匹配。

下面给出两种类型的例子,以此显示他们的语法不同的地方。

在下面的例子中 MATLAB 和 Octave 使不同功能的使用面积曲线: f(x) = x2 cos(x) for −4 ≤ x ≤ 9。

我们先来看看 MATLAB 中的代码:

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));

运行该文件,MATLAB绘制如下图表:

显示结果如下:

a =
 
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
Area: 
    0.3326

在 Octave 中使用相同的面积曲线,必须使用符号包如下:

pkg load symbolic
symbols

x = sym("x");

f = inline("x^2*cos(x)");

ezplot(f, [-4,9])
print -deps graph.eps

[a, ierror, nfneval] = quad(f, -4, 9);

display('Area: '), disp(double(a));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值