用matlab解矩阵,怎么定义未知数呢?

2024-11-13 02:06:44
推荐回答(1个)
回答(1):

参考下面的代码:

>> n=5;
>> for i=1:n+1, eval(sprintf('syms d%i;d(i)=d%i;',i,i));end
>> diag( -( 1./d(1:n) + 1./d(2:n+1) ) )
 
ans =
 
[ -1/d1-1/d2,          0,          0,          0,          0]
[          0, -1/d2-1/d3,          0,          0,          0]
[          0,          0, -1/d3-1/d4,          0,          0]
[          0,          0,          0, -1/d4-1/d5,          0]
[          0,          0,          0,          0, -1/d5-1/d6]
 
>> diag( 1./d(2:n), 1 )
 
ans =
 
[    0, 1/d2,    0,    0,    0]
[    0,    0, 1/d3,    0,    0]
[    0,    0,    0, 1/d4,    0]
[    0,    0,    0,    0, 1/d5]
[    0,    0,    0,    0,    0]

 

需要注意,MATLAB不支持维数未知的矩阵,所以n必需预先指定。