-1

可以通过以下等式从张量 T 导出特征值和特征向量。

我正在尝试获得一个用于特征值、特征向量和张量 T 的方程组来导出 T。

T矩阵方程为:

(T(i,k)-L(r)*I) * A(r,k) = 0

第一个条目应该是:

[(T11-L1)*A11 T12*A12       T13*A13        T14*A14     ]
[T21*A11      (T22-L1)*A12  T23*A13        T24*A14     ]   
[T31*A11      T32*A12       (T33-L1)*A13   T34*A14     ]
[T41*A11      T42*A12       T43*A13        (T44-L1)*A14]
4

1 回答 1

2

首先,让我们更轻松地声明符号sym

T = sym('T%d%d', [4 4]);
A = sym('A%d%d', [4 4]);
L = sym('L', [4 1]);

原代码有几个问题;1. f在每次内部迭代中被替换。2.内部结果应该是标量的,因此I不能出现在那里。(请注意,您也可以定义Ilikeeye(4)而不是手动编写它。)

这是更正后的版本:

f = cell(4,1); % Initialize equation system

for r = 1:k
    for k = 1:4
        for i = 1:4
            f{r}(i,k) = T(i,k) * A(r,k);
        end
    end
    f{r} = f{r} - L(r)*diag(A(r,:));
end

f{i}将是ith切片。

注意:正如@Schorsch 指出的(并且Matlab 也显示警告)总是尝试使用i(或j)以外的另一个变量名,因为它们代表虚数单位

只是为了好玩,您可以使用repmat删除两个内部循环:

for r = 1:4
    f{r} = T .* repmat(A(r,:), [4 1]) - L(r)*diag(A(r,:));
end
于 2013-06-28T16:26:01.893 回答