2016-05-02 2 views
0

Итак, это мой сценарий:Участок кусочно-символическая функция

syms t r w 
x1=5^-t*heaviside(t); 
x_2=subs(x1,t,t-r); 
x2=conj(x_2); 
R=int(x1*x2,t,-inf,inf); 
R=simplify(R) 

ezplot(R, [-10 10]); 

R=piecewise([0 <= r, 1/5^r/(2*log(5))], [r <= 0, 5^r/(2*log(5))])

И как вы можете видеть, что я пытаюсь построить символическое решение с ezplot функции, но я получаю эту ошибку:

The input string must be an expression. Implicit functions of a single variable are not supported. 

Как я понимаю, Matlab не работает с кусочными функциями. Есть ли другой способ построения этой функции?

ответ

2

Я взял подход переписывания выражения кусочного с ineqalities:

ezplot(@(r)(0 <= r)*1/5^r/(2*log(5)) + (r <= 0)*5^r/(2*log(5))); 

Не идеальным с копией пастой, но это лучше, чем ничего.

В качестве альтернативы вы можете оценить это численно:

x = -10:0.01:10; 
y = eval(subs(R,r,x)); 
plot(x,y) 
+0

Большое спасибо Steve! –

Смежные вопросы