Решая систему кусочных уравнений в Matlab, продолжайте получать "Функция 'lt' не реализована для символических объектов MuPAD" - PullRequest
0 голосов
/ 14 марта 2012

Я пытаюсь запустить этот код

   syms x m
eq3 = m-['(heaviside(x)-heaviside(x-1))*x^3/6  ']; 
    %...
    % '(heaviside(x-1)-heaviside(x-2))*(1/6)*(-3*x) + ' ...
    % '(heaviside(x-2)-heaviside(x-3))*(1/6)*(3*x^3-24*x^1) + ' ...
    % '(heaviside(x-3)-heaviside(x-4))*(1/6)*(4-x)^3'];
eq2=-x+(.6/.0360)*m;

sol = solve(eq3,eq2);

Но я продолжаю получать эту ошибку

Функция 'lt' не реализована для символических объектов MuPAD.

Я искал и обнаружил, что мне нужно сделать x двойным, поэтому я попробовал это, но вместо этого я получаю эту ошибку, когда помещаю в строку x = double (x)

Ошибка в команде MuPAD: DOUBLE не может преобразовать входное выражение в двойной массив Если входное выражение содержит символическую переменную, используйте функцию VPA вместо этого.

Ошибка в ==> sym.sym> sym.double в 927 Xstr = mupadmex ('mllib :: double', S.s, 0);

Если я использую VPA и поставлю строку x = vpa (x), я получаю следующую ошибку

Функция 'lt' не реализована для символических объектов MuPAD.

Ошибка в ==> sym.sym> sym.lt на 803 notimplemented ( 'л');

Пожалуйста, сообщите, спасибо!

1 Ответ

0 голосов
/ 14 марта 2012

Это то, что вы хотите?

eq3 = sym('m - (heaviside(x)-heaviside(x-1)) * x^3/6');
solve(eq3)
...