Использование неуказанных констант в Matlab - PullRequest
1 голос
/ 14 февраля 2012

Я пытаюсь решить систему уравнений в s-области. Итак, установите эту систему уравнений в матричной форме:

a=[.4*s+s+5 -5; -5 .5*s+5]  
c=[3/s; 3/(2*s)]  
(1/s)*a*b=c

Я только что получил ошибку, которая не определена. Как я могу решить для б с точки зрения с?

Ответы [ 2 ]

5 голосов
/ 14 февраля 2012

Matlab (естественно) не выполняет символьные вычисления - это то, что пытается сделать ваш код.Переменные в Matlab должны быть конкретными числами, массивами или структурами и т. Д. Они не могут быть просто заполнителями для произвольных чисел.

(UNLESS: для Matlab используется набор инструментов для символических вычислений *1004*. IЯ действительно не использовал это, потому что я предпочитаю выполнять символические вычисления в таких средах, как Maple или Mathematica. Вы могли бы даже решить свою проблему на веб-сайте Wolfram Alpha)

Но если вы выберете определенное значение s, вычислениято, что вы хотите, легко:

s = 5;
a=[.4*s+s+5 -5; -5 .5*s+5];
c=[3/s; 3/(2*s)];
b = s*(a\c);

Где я использовал оператор обратной косой черты для выполнения линейной инверсии.

Теперь у вас должно быть, что

(1/s)*a*b-c

- это нулевой вектор.

РЕДАКТИРОВАТЬ: Я посмотрел на символическую панель инструментов.Похоже, что это то, что вы хотите (но вам нужно иметь лицензированный набор инструментов и установить его для работы):

syms s;
a=[.4*s+s+5 -5; -5 .5*s+5];
c=[3/s; 3/(2*s)];
b = simple(s*(a\c))
1 голос
/ 14 февраля 2012

Код для выполнения ваших расчетов с использованием символических операторов:

syms s;                           %This defines 's' as a symbolic token
a=[.4*s+s+5 -5; -5 .5*s+5];       %a and c inherit the symbolic properties from s
c=[3/s; 3/(2*s)];                 
result = solve('(1/s)*a*b=c','b') %Solve is the general symbolic toolbox algebraic solver.

Это дает

result =
(c*s)/a

Вообще говоря, Matlab работает лучше всего в качестве числового набора инструментов.Поэтому, в зависимости от вашего приложения, я бы выбрал другой подход, такой как продемонстрированный Ианом Хинксом в другом ответе.Но иногда ситуация требует символического решения.

...