Объединение двух участков с `fplot` - PullRequest
0 голосов
/ 19 мая 2018

Рассмотрим

x_1 = @(A,t,C_prey)C_prey*exp(t*A)

и

x_2 = @(B,t,C_prey,C_predator)C_prey*exp(t*(-B*C_predator))

Для начала:

fplot(x_1([0.01 0.05 0.08],t,1),[0,0.1])

и

fplot(x_2([0.01 0.05 0.08],t,1,1),[0,0.1])

Но когда я пытаюсьпостроить их вместе

fplot(x_1([0.01 0.05 0.08],t,1),x_2([0.01 0.05 0.08],t,1,1))

MATLAB предлагает мне команду с Error updating ParameterizedFunctionLine.

Не похоже, что мой синтаксис неверен, поскольку в документации MATLAB приведен пример построения двух функцийс fplot довольно прямым способом.

Что здесь не так?

1 Ответ

0 голосов
/ 20 мая 2018

Планируете ли вы построить 2 функции в общем виде или 1 функцию в параметрическом виде?В первом случае, как сказал @SardarUsama, вы должны исправить синтаксис, используя hold on.Например:

x_1 = @(A,t,C_prey)C_prey*exp(t*A);
x_2 = @(B,t,C_prey,C_predator)C_prey*exp(t*(-B*C_predator));

fplot(@(t)x_1([0.01 0.05 0.08],t,1), [0,0.1]); 
hold on; 
fplot(@(t)x_2([0.01 0.05 0.08],t,1,1), [0,0.1]); 
grid on; hold off;

Здесь для каждого значения в A(or B):[0.01 0.05 0.08] вы получите 2 кривые (x_1 и x_2).Однако, если вы хотите построить только одну функцию в параметрической форме, вам придется построить одну кривую для каждого значения A.Такие как:

A = [0.01 0.05 0.08];
figure; grid on; hold on;
for i=1:length(A)
    fplot(@(t)x_1(A(i),t,1),@(t)x_2(A(i),t,1,1), [0,0.1]);
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...