声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 920|回复: 3

[编程技巧] 请教一个矩阵问题 奇怪

[复制链接]
发表于 2009-5-28 13:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
f=linspace(0,8000,100); w=2.*pi.*f;    %define the frequency and the angular frequency
c0=340; p=2700;                               %define the sound speed in air and the density of steel plate
h=0.0025; theta=linspace(0,pi/2,100);            
k0=w./c0; kx=k0.*sin(theta); ky=k0.*cos(theta);                                 
S=[0.01 -0.0046 -0.0046 0 0 0;-0.0046 0.01 -0.0046 0 0 0; -0.0046 -0.0046 0.01 0 0 0;0 0 0 26.7 0 0;0 0 0 0 26.7 0;0 0 0 0 0 26.7];
C=inv(S);

D1=[1 0 0 0 0 0;0 0 0 0 0 1;0 0 0 0 1 0];
D2=[0 0 0 0 0 1;0 1 0 0 0 0;0 0 0 1 0 0];
D3=[0 0 0 0 1 0;0 0 0 1 0 0;0 0 1 0 0 0];

%Define the zero matrix and I
A11=zeros(3); A12=eye(3); A=zeros(6,6,100);

%calulate matrix A
B2=D3*C*(D3'); IVB2=inv(B2);
   for j = 1:length(w)
      B1(:,:,j)= (i*kx(j)*D1*C*D3')+(i*kx(j)*D3*C*D1')+(i*ky(j)*D2*C*D3')+(i*ky(j)*D3*C*D2');
      B0(:,:,j)=(i*kx(j)*i*kx(j)*D1*C*D1')+(i*ky(j)*i*ky(j)*D2*C*D2')+(i*kx(j)*i*ky(j)*D1*C*D2')+(i*ky(j)*i*kx(j)*D2*C*D1');
      A21(:,:,j)=-p*w(j)*w(j)*IVB2-IVB2*B0(:,:,j);
      A22(:,:,j)=-IVB2*B0(:,:,j);
      A=[A11  A12; A21(:,:,j) A22(:,:,j)]
   end
矩阵A 结构是一个6*6的矩阵,共有100个该矩阵,
A11 A12;A21 A22都是3x3的子矩阵,各为A的分块矩阵
我需要用A11 A12 ;A21 A22 放入A的各自位置,构成A矩阵
如上语句就是做不出来,不能成功得到全部A的全部元素!
请高手帮我看看,哪里有问题!急啊

[ 本帖最后由 ChaChing 于 2009-5-30 20:31 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-5-28 14:37 | 显示全部楼层
可以正确运行,不知你说的问题是什么,部分运行结果:
A =

     0     0     0     1     0     0
     0     0     0     0     1     0
     0     0     0     0     0     1
     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0


A =

  1.0e+010 *

         0         0         0    0.0000         0         0
         0         0         0         0    0.0000         0
         0         0         0         0         0    0.0000
   -1.8584    0.0000         0    0.0000    0.0000         0
    0.0000   -1.8584         0    0.0000    0.0000         0
         0         0   -0.0002         0         0    0.0000
……
 楼主| 发表于 2009-5-28 16:09 | 显示全部楼层

我的问题

请楼主看运行出来的最终矩阵当中 右部分
A(1:3,4:6),显示的是零元素阿,该子阵应该是一个单位阵才对啊?

A(4:6,4:6)应该附上A22子阵的内容,也显示的是零阿?


该阵实际上只把 A11 和A13部分体现出来了,为什么呢?
发表于 2009-5-28 18:18 | 显示全部楼层
建议楼主设断点,看看此时的A21,A22的值,我的运行结果:
K>> A21

A21 =

     0     0     0
     0     0     0
     0     0     0

K>> A22

A22 =

     0     0     0
     0     0     0
     0     0     0

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-10-1 07:42 , Processed in 0.071859 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表