0

我有一个像这样的符号向量:

du = [3u11 - 1u12, 8*u12 - u11 - 3*u14, 4*u13 - 5*u14, 11*u14 - 12*u13 - 8*u12]

然后我想提取系数,我可以用coeffs函数来做到这一点,例如

coeffs(du(:,1))

返回[3, -1]

我想用一个for循环来做到这一点,然后将系数插入一个矩阵。在这个例子中,矩阵是 4×4,所以我会用C = zeros(4). 然后,系数 ,[3,-1]将分别放在C(1,1)C(1,2)中,而coeffs(du(:,2)返回[8, -1 -3]的 , 将放在C(2,2),C(2,1)C(2,4)中。因此,in 中的du行将对应于 中的行C,并且每个系数名称中的第二个数字,例如u12,将对应于列。

好的,这是我的代码:

clc, clear all
k=[1,2,3,4,5];
nodes= [1 2; 2 4; 2 4;2 4; 4 3];
nnodes=4;
nelem=5;

u=sym('u%d%d',[1 nnodes]);

f(u)=sym('f(u)');
f(u)=0;
for i=1:nelem
f=f+0.5*k(i)*(u(nodes(i,2))-u(nodes(i,1)))^2;
end
for i=1:nnodes
du(i)=diff(f,u(i),1);
end

所以我不确定如何用 du 的系数制作矩阵

4

0 回答 0