Я пытаюсь построить график корневой функции с двумя осями разного масштаба, поэтому, скажем, ось x идет от 0 до 1,2 с шагом 0,1, а ось y идет от 0 до 1,4 с шагом 0,2 (одна функция, 2 оси разного масштаба). Я думаю, что правильно масштабировал, пожалуйста, поправьте меня, если есть лучший способ запрограммировать это.
Вот мой код:
x = linspace(0,1.2);
y = 0.5 + (0.9 * (x.^2 - 0.0432)).^(1/2);
% here I need the negative part as well: 0.5 - [...] as follows:
% y2 = 0.5 - (0.9 * (x.^2 - 0.0432)).^(1/2);
% How can I create this function and plot it?
plot(x,y)
axis([0 1.2 0 1.4])
set(gca,'xTick',0:0.1:1.2)
set(gca,'yTick',0:0.2:1.4)
grid on
У меня есть верхняя часть функции, но не нижняя (отрицательная, см. комментарий выше в коде). Как его можно создать? Или, если это невозможно, как я могу создать график из по-разному определенных «подграфов»? Домен каким-то образом нужно ограничить x >= 0.206.
plot
принимает несколько рядов входных данных (например,plot(x, y, x, y2);
). В документации также есть ссылка наhold
, который сохраняет графики в текущем оси, чтобы новые графики, добавленные к осям, не удаляли существующие графики - person excaza   schedule 09.12.2015real
сложного количество? - person excaza   schedule 09.12.2015x >= 0.206
вместоx >= 0.0432
. Я хотел бы построить параболу для этой области. Приведенный выше код неполный, так как в нем отсутствует нижняя (отрицательная) часть функции. - person user3032689   schedule 09.12.2015x >= 0.0432
. Мой код этого не делает, вы его когда-нибудь запускали? - person user3032689   schedule 09.12.2015sqrt(f(x)), f(x) = a*x^2+b*x+c
не даст вам параболу. попробуйте построить диапазон [-10,10] и посмотрите, как он выглядит. Значения между (-0,206,0,206) будут повреждены из-за ранее указанной проблемы. В противном случае функция будет действовать достаточно линейно. И да, ваш пример работает на моей машине. - person patrik   schedule 09.12.2015