matlab 矩阵求方程这是一个矩阵位移法的题,如果6x6的刚度矩阵K我都知道了,但是方程是KU=F,U=[Ux Uy Q Vx Vy P]',F=[Fx Fy M1 Px Py M2]',比如其中Ux Uy Q Px Py M2 都已知,我怎么求其他的数啊,就是对应的位移

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 00:44:23

matlab 矩阵求方程这是一个矩阵位移法的题,如果6x6的刚度矩阵K我都知道了,但是方程是KU=F,U=[Ux Uy Q Vx Vy P]',F=[Fx Fy M1 Px Py M2]',比如其中Ux Uy Q Px Py M2 都已知,我怎么求其他的数啊,就是对应的位移
matlab 矩阵求方程
这是一个矩阵位移法的题,如果6x6的刚度矩阵K我都知道了,但是方程是KU=F,U=[Ux Uy Q Vx Vy P]',F=[Fx Fy M1 Px Py M2]',比如其中Ux Uy Q Px Py M2 都已知,我怎么求其他的数啊,就是对应的位移和等效结点力两者只知道一个,但是未知数与方程数相同,自己手算肯定能算出答案的,matlab里怎么算这种
你这方法不错,但是如果我已知的U不是连续出现的,就不能简单的分块了,要逐个挑出来,形成新的刚度矩阵,我不是要解决具体问题,至少这个方法,我要稍微有点普遍意义啊

matlab 矩阵求方程这是一个矩阵位移法的题,如果6x6的刚度矩阵K我都知道了,但是方程是KU=F,U=[Ux Uy Q Vx Vy P]',F=[Fx Fy M1 Px Py M2]',比如其中Ux Uy Q Px Py M2 都已知,我怎么求其他的数啊,就是对应的位移
你这个有点像有限元里面的东西.
下面的K是我乱写的.
你如果给定的不是前三个位移后三个应力的话,你自己得适当地调整,实际上就是调整下面的K1和K2,你一个命令地看,应当可以OK的.
K=[2,1,0,0,0,0;1,2,1,0,0,0;0,1,2,1,0,0;0,0,1,2,1,0;0,0,0,1,2,1;0,0,0,0,1,2];
u1=[1,2,3]';
F2=[4,5,6]';
K1=K(4:6,1:3);
K2=K(4:6,4:6);
u2=K2\(F2-K1*u1);
u=[u1;u2];
F=K*u;
%
%第一次修改
n=6;
K=[2,1,0,0,0,0;1,2,1,0,0,0;0,1,2,1,0,0;0,0,1,2,1,0;0,0,0,1,2,1;0,0,0,0,1,2];
n_node_ok=3; %三个节点位移己知
n_node=[1,2,4];%第1,2,4个节点的位移己知,这个的长度要与上面匹配
u1=[1,2,3]'; %三个节点(1,2,4节点)的位移值
F2=[4,5,6]'; %其它节点(2,5,6节点)的载荷值
n_f=1:n;
n_f(n_node)=[]; %给定载荷的节点号
K1=K(n_f,n_node);
K2=K(n_f,n_f);
u2=K2\(F2-K1*u1); %给定载荷节点的位移值
%后处理(所有节点的位移值的合成)
u(n_node)=u1;
u(n_f)=u2;
u=u';
F=K*u;
u,F