Как я могу получить упрощенную дробь на Scilab? - PullRequest
0 голосов
/ 06 февраля 2019

Я работал с функцией F (s) = 1 / с 5 + 5 * с 4 + 9 * s 3 +7 * s 2 + 2 * s и я хочу получить отдельные дроби для применения Лапласа.

s= %s
n2=1
d2=s^5+5*s^4+9*s^3+7*s^2+2*s
sist2=syslin('c',n2/d2)
sist2desc=pfss(sist2)


sist2desc  =

   sist2desc(1)

0.5   
---   
 s    

   sist2desc(2)

 0.5    
-----   
2 + s   

   sist2desc(3)

            2     
- 2 - 2s - s      
--------------    
           2   3  
1 + 3s + 3s + s   

Это вывод, который я получаю с этим кодом, ноЯ хочу получить 0,5 / с + 0,5 / (с + 2) -1 / с + 1 -1 / (с + 1)

1 Ответ

0 голосов
/ 22 марта 2019

Ваша дробь сложная для Scilab, которая использует арифметику с плавающей запятой при работе с полиномами и дробями, так как множественные корни ухудшают точность классического метода поиска корней (собственных значений сопутствующей матрицы).Здесь ваш знаменатель имеет -1 в качестве тройного корня, а тройная кратность уже слишком велика, как показано

--> roots((s+1)^3*(s+2)*s)
 ans  =

  -2.  
  -1.0000109  
  -0.9999945 + 0.0000095i
  -0.9999945 - 0.0000095i
   0.  

См. Обсуждение @ http://bugzilla.scilab.org/show_bug.cgi?id=15349 для альтернативных методов поиска корня.Такое поведение показывает, что использование Scilab для таких академических вещей - плохая идея.Это нормально для линейной алгебры, но не для символического исчисления.

...