• Регистрация
reincornator
reincornator +612.18
н/д

Неверный вывод символьной формулы

13.10.2021
Привет. Я выполняю вычисления с использованием символьных вычислений. Результат меня удовлетворяет. Однако окончательная формула выводится с ошибкой. Переменные, следующие за уравнением, ссылаются дру...

Привет. Я выполняю вычисления с использованием символьных вычислений. Результат меня удовлетворяет. Однако окончательная формула выводится с ошибкой. Переменные, следующие за уравнением, ссылаются друг на друга. На изображении я отметил один из примеров стрелками.
Формула верна, и при подстановке значений расчет также верен. Только отображение формулы неверно.

clear;
syms S [2 2] matrix
syms F_rad [2 2] matrix
syms V1 V2 [2 1] matrix

F_col1 = symmatrix(F_rad([1 2]).');
F_col2 = symmatrix(F_rad([3 4]).');

syms J [2 2] matrix
% 1
Erad1 =F_rad*V1;
Eref1 = S*J*Erad1;
Ecol1_d1 = F_col1.'*J*Eref1;
Ecol1_d2 = F_col2.'*J*Eref1;
% 2
Erad2 =F_rad*V2;
Eref2 = S*J*Erad2;
Ecol2_d1 = F_col1.'*J*Eref2;
Ecol2_d2 = F_col2.'*J*Eref2;

Eref1_HV = J\([F_col1 F_col2].'\[Ecol1_d1; Ecol1_d2]); % при J=J.'
Eref2_HV = J\([F_col1 F_col2].'\[Ecol2_d1; Ecol2_d2]); % при J=J.'
Eref_HV = [Eref1_HV Eref2_HV];
Erad_HV = [J*Erad1 J*Erad2];

% Final formula
S_calc = (Eref_HV/Erad_HV)


%%%% Result %%%
simplify(symmatrix2sym(S_calc))

Теги

    13.10.2021

    Комментарии

    • tha
      tha+1393.25
      15.10.2021 14:30

      Привет. В последней строчке у вас где-то ошибка

      • reincornator
        reincornator+612.18
        15.10.2021 15:37

        Там нет ошибки. Код работает и ответ правильный. Вы же видите, что матлаб зацикливает формулу.

        • tha
          tha+1393.25
          17.10.2021 18:05

          Да, действительно, извините, у меня не стоял Symbolic Math Toolbox, поэтому ошибку выдавало.
          Можно задать syms J [2 2], тогда итоговое выражение получится не таким компактным, но при этом не будет закольцованных ссылок

          • reincornator
            reincornator+612.18
            18.10.2021 21:09

            Можно задать по разному. Я написал об ошибке в ТП mathworks в раздел "bug reports", они направили в "Экспоненту". Я написал об ошибке в ТП "Экспоненты", они направили на форум. Я написал об ошибке на форум, мне ответили, что можно воспользоваться другим инструментом). Ну классно)

            • tha
              tha+1393.25
              19.10.2021 11:58

              Это действительно баг, спасибо, что не пожалели времени, чтобы сообщить о нем!  В мафворкс об этом написал. Ждем когда поправят, а пока можно обходить тем способом, что я изложил выше.

              • reincornator
                reincornator+612.18
                19.10.2021 12:35

                спасибо

      • asarolfe
        asarolfe-1.00
        17.11.2022 03:14

        Вы же видите, что матлаб зацикливает формулy

        backrooms game