Octave: тестирование функций в диапазоне в списках или как в циклах For? - PullRequest
1 голос
/ 09 октября 2009

Я хочу видеть значения функции y (x) с разными значениями x, где y (x) <5: </p>

у = абс (х) + абс (х + 2) -5

Как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 10 октября 2009
fplot(@(x) abs(x)+abs(x+2)-5, [-10 10])
hold all
fplot(@(x) 5, [-10 10])
legend({'y=abs(x)+abs(x+2)-5' 'y=5'})
1 голос
/ 10 октября 2009

Если вы ограничите x диапазоном [-6 4], это будет гарантировать, что y будет ограничено значением, меньшим или равным 5. В MATLAB вы можете затем построить функцию с помощью FPLOT (как Амро предложил ) или LINSPACE и PLOT (как Питер предложил ):

y = @(x) abs(x)+abs(x+2)-5;  % Create a function handle for y
fplot(y,[-6 4]);             % FPLOT chooses the points at which to evaluate y
% OR
x = linspace(-6,4,100);      % Create 100 equally-spaced points from -6 to 4
plot(x,y(x));                % PLOT will plot the points you give it 
1 голос
/ 10 октября 2009

Вы можете просто создать вектор значений x, а затем посмотреть на вектор y или построить его:

% Create a vector with 20 equally spaced entries in the range [-1,1].
x = linspace(-1,1,20);

% Calculate y, and see the result
y = abs(x) + abs(x + 2) - 5

% Plot.
plot(x, y);

% View the minimum and maximum.
min(y)
max(y)
0 голосов
/ 10 октября 2009
% create a vector x with values between 1 and 5
x = 1:0.1:5;

% create a vector y with your function
y = abs(x) + abs(x+2) - 5;

% find all elements in y that are under 5
y(find(y<5))
...