Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2007-06-14, 12:18   #1
cicyabc
初级会员
 
注册日期: 2007-06-13
帖子: 1
声望力: 0
cicyabc 正向着好的方向发展
默认 求助:解一个62阶矩阵

本人毕业设计涉及了数值模拟,于是自学了一点matlab用于求解线性方程组,导入矩阵各元素后发现矩阵的秩只有61,换了好多次边界条件,秩仍为61虽能求解,但是结果明显有误。不知道是不是程序有问题。 前面的程序很短的,望好心人抽空给于指正,万分感谢。
下面是前面的一部分程序:
%根据现有资料,计算下一时刻的水位,流量,盐度

A0=zeros(62,62);
format long e ;
T1=load('t1.txt');%T1=Δt/bi/Δx
T2=load('t2.txt');%T2=ΔtgA/Δx
T3=load('t3.txt');%T3=1-ΔtUi/Δx
T4=load('t4.txt');%T4=ΔtU(i+1)/Δx
T5=load('t5.txt');%T5=-ΔtgAdc/Δx/(Si+0.741)
T6=load('t6.txt');%T6=1-αΔt/Δx +2KxΔt/Δx
T7=load('t7.txt');%T7=αΔt/Δx-KxΔt/Δx/Δx
T8=load('t8.txt');%T8=KxΔt/Δx/Δx
%i=1时方程(1)的系数
A0(1,1)=1;
A0(1,22)=T1(1);
%i=21时方程(1)的系数
A0(21,21)=1;
A0(21,41)=-T1(21);
A0(21,42)=T1(21);
%i=1时方程(2)的系数
A0(22,1)=-T2(1);
A0(22,2)=T2(1);
A0(22,22)=T4(1);
A0(22,43)=-T5(1);
%i=21时方程(2)的系数
A0(42,21)=-T2(21);
A0(42,41)=T3(21);
A0(42,42)=T4(21);
A0(42,62)=T5(21);
%i=2时方程(3)的系数
A0(43,43)=T6(2);
A0(43,44)=T7(2);
%i=21时方程(3)的系数
A0(62,61)=T8(21);
A0(62,62)=T6(21);
%根据方程(1)(2)对其他系数赋值
for i=2:20;
A0(i,i)=1;
A0(i,i+20)=-T1(i);
A0(i,i+21)=T1(i);
A0(i+21,i)=-T2(i);
A0(i+21,i+1)=T2(i);
A0(i+21,i+20)=T3(i);
A0(i+21,i+21)=T4(i);
A0(i+21,i+41)=T5(i);
A0(i+21,i+42)=-T5(i);
end;
%根据方程(3)对其他系数赋值
for i=3:20;
A0(i+41,i+41)=T6(i);
A0(i+41,i+42)=T7(i);
A0(i+41,i+40)=T8(i);
end;
B0=load('方程右边.txt');
X1=A0\B0;%第一次求解结束
X1,%输出X1


运行是总出现一下警告:
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 2.721593e-023.
上传的附件
文件类型: rar 新建文件夹.rar (8.6 KB, 3 次查看)
cicyabc 当前离线   回复时引用此帖
旧 2007-06-19, 23:43   #2
chianelxie
初级会员
 
注册日期: 2007-05-09
帖子: 29
声望力: 18
chianelxie 正向着好的方向发展
默认

产生的是奇异矩阵,可能是你构建矩阵时候出现了问题,核对下,数据问题。
chianelxie 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 22:20


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.