Как мне правильно построить эту простую вещь в Octave?

Я студент, пытающийся научиться использовать Octave, и мне нужна помощь с построением этой штуки прямо здесь, функция, которую я хочу построить

Код выглядит так:

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

Кажется, что это должно было быть построено без проблем, но график на рисунке кажется совершенно пустым, и я не могу понять, почему это могло произойти. Хотел бы знать, что я делаю не так

1 ответ

Решение

Если вы проверите значение (просто введите и нажмите Enter), вы обнаружите, что это одно число, а не вектор.

Чтобы узнать почему 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');

Другие вопросы по тегам