2016-02-05 2 views
1

Я хочу решить выражение, сохраненное в строке. Я попытался следующие:Как решить выражение, сохраненное в строке?

x=sym('cos(x)'); 
plot(x) 

или

x=sym('cos(30)'); 
simplify(x); 

Нет результат был показан в любом случае.

+0

Добро пожаловать в SO. Прочтите описание тегов перед их добавлением. – horchler

ответ

3

попробовать

x = sym('cos(x)'); 
ezplot(x); 

и

x = sym('cos(30)'); 
eval(x); 
0

Во-первых, если вы не используете 10-летнего версии Matlab, оценивая символические выражения в виде строк осуждается. Из текущей (R2015b) документации для sym:

Поддержка строк, которые не являются допустимыми именами переменных и не определяют номер будет удален в будущем выпуске. Чтобы создать символические выражения, сначала создайте символические переменные, а затем используйте на них операции.

Во-вторых, определение выражения с использованием переменной, содержащейся в этом выражении, например, x=sym('cos(x)');, является путаным и может привести к проблемам.

Вместо этого, вы должны использовать что-то вроде этого, чтобы создать символическое выражение:

syms x 
y = cos(x); 
ezplot(y); 

Или создать символическую функцию, symfun:

syms x 
y(x) = cos(x); 
ezplot(y);  % Or: plot(-6:0.1:6,y(-6:0.1:6)) 

И оценить ваше выражение:

syms x 
y = cos(x); 
yout = subs(y,x,30) % Note that trigonometric functions take inputs in radians, not degrees 

or:

syms x 
y(x) = cos(x); 
yout = y(30) 

Затем используйте vpa или double для преобразования yout переменной точности или форм с плавающей точкой.

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