Я работаю с несколькими матрицами и пытаюсь упростить результаты с использованием символических терминов. Команда subs() не будет работать, потому что переменным не присвоены значения. Но работать с этим неприятно:

(5592405333333333*u11)/4194304 - (5592405333333333*u9)/4194304

(1977213867171907*2^(1/2)*u5)/4194304 + (1977213867171907*2^(1/2)*u6)/4194304 - (1977213867171907*2^(1/2)*u9)/4194304 - (1977213867171907*2^(1/2)*u10)/4194304

Значения u являются символическими. Оценка первого слагаемого (5592405333333333*u11)/4194304 очень близка к 1,333,333,333*u11 которыми я могу работать.

Есть ли какая-нибудь команда, чтобы сделать разделение, чтобы оно немного очистилось?

1 ответ1

1

Команда, которую вы ищете, это vpa. Пример:

syms u11;
expr =(5592405333333333*u11)/4194304;  %fraction
res1 = vpa(expr);    %it'll evaluate expr to at least 32 significant digits
res2 = vpa(expr,5);  %it'll evaluate expr to at least 5 significant digits
res3 = vpa(expr,9);  %it'll evaluate expr to at least 9 significant digits

Выход:

res1 =
1333333333.3333332538604736328125*u11

res2 =
1.3333e9*u11

res3 = 
1333333333.0*u11

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .