Как мне правильно построить эту простую вещь в 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');