2014-05-05 3 views
0

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

a = input('Plese enter a = '); 
b = input('Please enter b = '); 
function1 = input('Please enter the function: ', 's'); 

syms x eq1 
eq1 = sym(function1); 

Integral1 = int(eq1 , x, a, b); 
Simpson = 1/6 * (b - a) * (subs(eq1 , x, a) + 4 * ... 
    (subs(eq1 , x, (a+b)/2))... 
    + subs(eq1 , x, b)); 

fprintf('The value of the integral is %s \n', Integral1); 
fprtinf('The aprroximation with simp is %s \n', Simpson); 

Симпсон - интегральное приближение от правила Симпсона. Я получаю ошибку что-то вдоль линий «Конверсия в„Sym“вернул ошибку MuPAD: Ошибка: неожиданный" идентификатор»номер строки будет линия

eq1 = sym(function1); 

ответ

0

Один из способов сделать это с помощью eval :

function1 = input('Please enter the function: ', 's'); 
eq1=eval(function1); 

Но вы должны преобразовать результаты в парном разряде, прежде чем вы можете отобразить их с fprintf:

fprintf(''The value of the integral is %s \n', double(Integral1)); 
Смежные вопросы