Здравствуйте!
В MATLAB операция с полиномами с использованием функции `tf` (transfer function) действительно может иногда приводить к изменению знаков из-за того, как представляются полиномы и какие операции вы выполняете с ними. Это также может быть связано с тем, как настроены коэффициенты или порядок полинома.
Для того чтобы запретить MATLAB автоматическое изменение знаков, вы можете явно задать коэффициенты полинома в нужном вам виде. Вот несколько советы:
1. **Контроль порядка и знаков**: Убедитесь, что вы создаете полиномы в правильном порядке и со знаками, которые вы хотите. Например, вы можете явно указать коэффициенты, чтобы избежать нежелательных изменений знаков.
```matlab
num = [1 0]; % num = x
den = [1 -2]; % den = x - 2
sys = tf(num, den);
```
2. **Использование `tf` с обнулением коэффициентов**: Если у вас есть полином, и вы хотите изменить его знак, вы можете явно задать коэффициенты вектора. Например:
```matlab
num = [-1 1]; % Знак перед 1 первым коэффициентом
den = [1 2]; % Положительные коэффициенты
sys = tf(num, den);
```
3. **Альтернативные функции для создания систем**: Если проблема сохраняется, рассмотрите использование других функций, таких как `ss` (состояние системы) или `zpk` (нейтрализованные полюса и нули), где управление знаками также возможно.
4. **Следите за порядком полинома**: Важным аспектом является то, что в MATLAB полиномы представлены в порядке убывания степени. Убедитесь, что вы вводите коэффициенты в правильном порядке.
Если проблема сохраняется, предоставьте больше информации о том, какие конкретные операции вызывают изменение знаков, и я постараюсь помочь вам найти более специфическое решение.