Оценка символьных дробей без присвоения значений символическим переменным в MATLAB?

388
Asinine

Я работаю с несколькими матрицами и пытаюсь упростить результаты с использованием символических терминов. Команда 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 чем я могу работать.

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

0

1 ответ на вопрос

1
Sardar_Usama

Команда, которую вы ищете, это 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 

Похожие вопросы