如何在 Octave 中正确绘制这个简单的东西?

问题描述

我是一名学生,正在尝试学习如何使用 Octave,我需要帮助在此处绘制此内容the function I want to plot

代码如下:

x2 = 0:0.1:50;
y2 = power((1+(2.*x2/(exp(0.5.*x2)+(x2.^2)))),0.5);
plot(x2,y2,'-b');

感觉它应该没有问题地绘制,但图中的情节似乎完全空白,我无法理解为什么会发生这种情况。很想知道我做错了什么

解决方法

如果您检查 y2 的值(只需输入 y2 并按 Enter),您会发现 y2 是单个数字而不是向量。

要找出为什么 y2 是单个数字,我们在计算 power((1+(2.*x2/(exp(0.5.*x2)+(x2.^2)))),0.5) 中键入并逐步删除外部函数/运算符。一旦结果是一个向量,我们就知道最后删除的东西破坏了结果。

在你的情况下,/ 是罪魁祸首。
来自Octave,Arithmetic Ops(强调我的):

x / y
对分。这在概念上等同于表达式 (inv (y') * x')',但它的计算没有形成 y' 的逆。 如果系统不是方阵,或者如果系数矩阵是奇异的,计算最小范数解

x ./ y
逐个元素右除。

因此,将 / 替换为 ./

x2 = 0:0.1:50;
y2 = power(1 + 2 .* x2 ./ (exp(0.5 .* x2) + (x2 .^ 2)),0.5);
plot(x2,y2,'-b');

plot