24小时热门版块排行榜    

查看: 951  |  回复: 2

fanghd2005

铁虫 (小有名气)

[求助] matlab有限差分法解Couette流出错 已有2人参与

各位前辈,我用有限 差分法解一维couette流时计算结果与教材中的结果不一样,
我用matlab写的程序,我对比了一下中间计算结果,与教材中的结果相同,矩阵与线性方程右端系数都相同,只有求解之后的结果不同。
请各位前辈帮我看看我的程序有什么问题,请指正。
%定义模型
Ylength=1;                  %平板长度
detaY=0.05;
My=Ylength/detaY;
detat=12.5;                 %时间步长
t=15000;                    %结晶计算时间
Nt=t/detat;
%定义初始条件
u=zeros(My+1,1);            %各点速度
u(My+1)=1;
%计算过程
for AC=1:Nt
    %流动场,Crank-Nicolson算法
    ReD=5000;
    A=-detat/(2*ReD*detaY^2);         %差分系数
    B=1+detat/(ReD*detaY^2);
    for j=1:My-1                      %循环矩阵
        P(j,j)=B;
        if j>1
            P(j-1,j)=A;P(j,j-1)=A;
        end
    end
    for i=2:My                         %右端常数项
        f(i-1,AC)=(1-detat/(detaY^2*ReD))*u(i,AC)+detat/(2*detaY^2*ReD)*(u(i+1,AC)+u(i-1,AC));
    end
    u(2:My,AC+1)=P\f(:,AC);    %此处出错
    u(1,AC+1)=0;
    u(My+1,AC+1)=1;
end
回复此楼
不会的太多
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
u'

ans =

  Columns 1 through 13

     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 14 through 21

     0     0     0     0     0     0     0     1
2楼2016-08-26 17:28:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
我运行了你下你的代码,没发现报错哦。我用的是MATLAB R2016a。不知道是不是版本问题
没有极限,只有超越!
3楼2016-08-27 10:15:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fanghd2005 的主题更新
信息提示
请填处理意见