声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1235|回复: 2

[动力学和稳定性] 请各位高手指点我的理解那个地方有错?

[复制链接]
发表于 2012-12-6 23:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 free518 于 2012-12-7 06:49 编辑

我在看一篇文献时想实现文章中的图,结果matlab程序运行的结果怎么也不出现人家的结果,不知道哪个地方有问题?请各位高手指点路?谢谢!可能是我理解这个文献有错误。我的理解是:
1)当参数s=0α=0时,有奇数阶矩阵,
1.JPG
矩阵中的,
11.JPG
An中的
12.JPG
n=1,2,3......
约定qn
13.JPG
根的正实部分. 当α=n=0时,
14.JPG
上角标的*代表复共轭。
想要求这个矩阵的特征值,再令a[i]为第i个最大特征值的倒数。i=1,2,3,4.
(2)当参数s=0,α=1/2时,有偶数阶矩阵,
2.jpg
想要求这个矩阵的特征值,再令b[i]为第i个最大特征值的倒数。i=1,2,3,4.
后想把上述(1)(2)画在一个图上,画x轴为k, y轴为a/gb/g的图,见文献
Linear theory of Faraday instability in viscous liquids的图一)
其他的参数为:
ν=1.02×10-4m2s-1,σ=67.6×10-3Nm-1, h=2×10-3m, ω/()=60HZ , ρ=1000kg/m3
Linear Theory of Faraday Instability in Viscous Liquids.pdf (309.6 KB, 下载次数: 7)

我写的MatLab程序:

%% ===============================
clear all
clc
format short
Jn=31;  %矩阵的阶数
omega=2*pi*60;
s=0;
alpha=0.0;
beta=0.5;
g=9.8*10^(3);
xima=67.6*10^(-3)*10^(-3);
h=2*10^(-3)*10^(3);
mu=1.02*10^(-4)*10^(6);
ro=1*10^3*10^(-9);
nn=floor(Jn/2);
i=sqrt(-1);

X_Start=0;X_end=3;Y_Start=0;Y_end=150;
for k=0.01:0.01:X_end
    for n=0:nn
        if n==0
            AN(n+1)=(2/k)*(g*k+xima/ro*k^3);%AN(1)=A_0
        else
            q(n+1)=(sqrt(k^2+(s+i*(alpha+n)*omega)/mu));%q(1)=q_0,q(2)=q_1,
            C(n+1)=q(n+1)*(q(n+1)^4+2*q(n+1)^2*k^2+5*k^4);
            D(n+1)=k*(q(n+1)^4+6*q(n+1)^2*k^2+k^4);
            AN(n+1)=(2/k)*(g*k+k^3*xima/ro-mu^2*((4*q(n+1)*k^2*(q(n+1)^2+k^2)...
                -C(n+1)*cosh(q(n+1)*h)*cosh(k*h)+D(n+1)*sinh(q(n+1)*h)*sinh(k*h))...
                /(q(n+1)*cosh(q(n+1)*h)*sinh(k*h)-k*sinh(q(n+1)*h)*cosh(k*h)))); %AN(2)=A_1,AN(3)=A_2
        end        
    end
    A=zeros(Jn);
    for ij=1:Jn
        if ij==1
            A(ij,ij+1)=1/conj(AN(nn+1));
        elseif ij==Jn
            A(ij,ij-1)=1/AN(nn+1);
        elseif (nn-ij)>=0
            A(ij,ij-1)=1/conj(AN(nn-ij+2));
            A(ij,ij+1)=1/conj(AN(nn-ij+2));
        else
            A(ij,ij-1)=1/AN(ij-nn);
            A(ij,ij+1)=1/AN(ij-nn);
        end
    end
    ab=sort(real(eig(A)),'descend');
    if ab~=zeros(length(ab),1)
        a=1./ab(ab~=0)/g;
        plot(k,a(1),'k.',k,a(2),'k.',...
            k,a(3),'k.',k,a(4),'k.',...
            'LineWidth',2);
        hold on
    end   

    for n=0:nn-1        
        q(n+1)=(sqrt(k^2+(s+i*(beta+n)*omega)/mu));%q(1)=q_0,q(2)=q_1,
        C(n+1)=q(n+1)*(q(n+1)^4+2*q(n+1)^2*k^2+5*k^4);
        D(n+1)=k*(q(n+1)^4+6*q(n+1)^2*k^2+k^4);
        AN(n+1)=(2/k)*(g*k+k^3*xima/ro-mu^2*((4*q(n+1)*k^2*(q(n+1)^2+k^2)...
            -C(n+1)*cosh(q(n+1)*h)*cosh(k*h)+D(n+1)*sinh(q(n+1)*h)*sinh(k*h))...
            /(q(n+1)*cosh(q(n+1)*h)*sinh(k*h)-k*sinh(q(n+1)*h)*cosh(k*h)))); %A(1)=A_0,A(2)=A_1
    end
    B=zeros(Jn-1);
    for ij=1:Jn-1
        if ij==1
            B(ij,ij+1)=1/conj(AN(nn));
        elseif ij==Jn-1
            B(ij,ij-1)=1/AN(nn);
        elseif (nn-ij)>=0
            B(ij,ij-1)=1/conj(AN(nn-ij+1));
            B(ij,ij+1)=1/conj(AN(nn-ij+1));
        else
            B(ij,ij-1)=1/AN(ij-nn);
            B(ij,ij+1)=1/AN(ij-nn);
        end
    end
    abab=sort(real(eig(B)),'descend');
    if abab~=zeros(length(abab),1)
        b=1./abab(abab~=0)/g;
        plot(k,b(1),'m.',k,b(2),'m.',...
            k,b(3),'m.',k,b(4),'m.',...
            'LineWidth',2);
        hold on
    end
end

xlabel('k/{mm^{-1}}');
ylabel('a/g');
axis([X_Start,X_end,Y_Start,Y_end]);

回复
分享到:

使用道具 举报

 楼主| 发表于 2012-12-6 23:36 | 显示全部楼层
本帖最后由 free518 于 2012-12-6 23:41 编辑

文献上的图
1w.JPG
我画出来的图
11w.JPG
不知道哪个地方错了?请知道的高手指点,谢谢!
 楼主| 发表于 2012-12-8 13:27 | 显示全部楼层
怎么到目前为止一个人也没有留言,难道这方面没有人考虑过吗!?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-4-29 22:46 , Processed in 0.174888 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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