24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1438  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wkxj

新虫 (初入文坛)

[求助] matlab中将含有变量“w”的复杂多项式存入矩阵元素,无法生成矩阵。哪里出问题了?

clc;
tic;
epssys=1.0e-6;

syms w
%w=1000;
a =40e-3;                                             
aa1 = a* [1 0 0];                                       
aa2 = a* [0 1 0];
aa3 = a* [0 0 1];
ra11 = (2*pi)*cross(aa2,aa3)/dot(aa1,cross(aa2,aa3));      
ra22 = (2*pi)*cross(aa3,aa1)/dot(aa1,cross(aa2,aa3));
ra1 = ra11(1:2);
ra2 = ra22(1:2);
lml1=0.0001419e9;                                      %空气纵波的拉梅常数
lml2=290.24e9;                                         %钢纵波的拉梅常数
lmn1=0;                                                %空气中没有横波
lmn2=71e9;                                             %钢横波的拉梅常数
rou1=1.29;                                             %空气密度
rou2=7800;                                             %钢密度

a1=w*0.003;
a2=w*1.376e-004;
b2=w*3.315e-004;
                                                   
r=0.01;
bh2 = @(nu,z)besselj(nu,z)-1i*bessely(nu,z);
% tg=[];
%tg=num2str(ones(5, 5));
tg=ones(5, 5);
for n2=1:5
    for n3=1:5
        n=n2-3;
        n1=n3-3;
      
        A11=n*besselj(n,a1*r)/r-a1*besselj(n+1,a1*r);  
        B11=n*bh2(n,a1*r)/r-a1*bh2(n+1,a1*r);  
        C11=n*besselj(n,a2*r)/r-a2*besselj(n+1,a2*r);  
        C21=1i*n*besselj(n,b2*r);
        C31=1i*kz*(n*besselj(n,b2*r)/r-b2*besselj(n+1,b2*r))/kt2;  %kt2^2=ω^2*ρ2/μ2   

            A121=-kz^2*lml1*besselj(n,a1*r);      
            A122=(2*n*lml1*a1+2*lml1*a1)*besselj(n+1,a1*r)/r;
            A123=lml1*a1^2*besselj(n+2,a1*r);
        A12=A121-A122+A123;
            B121=-kz^2*lml1*bh2(n,a1*r);
            B122=(2*n*lml1*a1+2*lml1*a1)*bh2(n+1,a1*r)/r;
            B123=lml1*a1^2*bh2(n+2,a1*r);
        B12=B121-B122+B123;
            C121=(2*lmn2*n^2-2*lmn2*n-lml2*r^2*kz^2)*besselj(n,a2*r)/r^2;  %α2=a2
            C122=(4*lmn2*n+2*lmn2+2*n*lml2+2*lml2)*a2*besselj(n+1,a2*r)/r;
            C123=(2*lmn2*a2^2+lml2*a2^2)*besselj(n+2,a2*r);
        C12=C121-C122+C123;
            C221=(2*lmn2*1i*n^2-2*lmn2*1i*n)*besselj(n,b2*r)/(kt2*r^2);      %β2=b2
            C222=2*lmn2*1i*n*b2*besselj(n+1,b2*r)/(kt2*r);
        C22=C221-C222;
            C321=(2*lmn2*1i*kz*(n^2-n))*besselj(n,b2*r)/(kt2*r^2);
            C322=(2*lmn2*1i*kz*(2*n+1))*b2*besselj(n+1,b2*r)/(kt2*r);
            C323=2*lmn2*1i*kz*b2^2*besselj(n+2,b2*r)/kt2;
        C32=C321-C322+C323;

            C131=2*lmn2*(1i*n^2+n^2)*besselj(n,a2*r)/r^2;
            C132=2*lmn2*1i*n*a2*besselj(n+1,a2*r)/r;
        C13=C131-C132;
            C231=lmn2*(2*n-2*n^2)*besselj(n,b2*r)/r^2;
            C232=lmn2*2*n*b2*besselj(n+1,b2*r)/r;
            C233=lmn2*b2^2*besselj(n+2,b2*r);
        C23=C231+C232+C233;
            C331=lmn2*(2*n*kz-2*n^2*kz)*besselj(n,b2*r)/(kt2*r^2);
            C332=lmn2*2*n*kz*b2*besselj(n+1,b2*r)/(kt2*r);
        C33=C331+C332;

            C141=lmn2*2*1i*kz*n*besselj(n,a2*r)/r;
            C142=lmn2*2*1i*kz*a2*besselj(n+1,a2*r);
        C14=C141+C142;
        C24=-n*kz*lmn2*besselj(n,b2*r)/r;
            C341=b2^2*lmn2*n*besselj(n,b2*r)/(kt2*r);
            C342=b2^3*lmn2*besselj(n+1,b2*r)/kt2;
        C34=C341-C342;

        F1=C12*C23*C34;
        F2=C22*C33*C14;
        F3=C32*C13*C24;
        F4=C32*C23*C14;
        F5=C22*C13*C34;
        F6=C12*C24*C33;
        F7=C11*C23*C34;
        F8=C11*C33*C24;
        F9=C21*C33*C14;
        F10=C21*C13*C34;
        F11=C31*C13*C24;
        F12=C31*C23*C14;
        Tn1=A11*(F1+F2+F3-F4-F5-F6);
        Tn2=B12*(F7-F8+F9-F10+F11-F12);
        Tn=(Tn1/Tn2);

        tg_1=Tn;
        tg(n2,n3)=str2double(vpa(tg_1));     
    end;
end;
tg
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

这种办法去对问题进行求解,个人觉得根本算不上是“算法”。
就是把实际问题做了一个模型化(这种模型化其实应该在很多教科书上都已经有了),然后把模型扔给电脑去求解(这种问题可能是很多年来一直没有具体的求解方法)。

对这种情况,有必要提出能解决问题的方法去进行解算。
仿真不是万能的,算法才是解决仿真的核心
13楼2015-05-01 22:11:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

信彼南山

木虫 (著名写手)

bessel函数应该都是调用的besselmx(这个好像是一个c编译成的mex)
可能是mex不支持符号运算吧。

程序太长了
2楼2015-04-29 22:48:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wkxj

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 信彼南山 at 2015-04-29 22:48:31
bessel函数应该都是调用的besselmx(这个好像是一个c编译成的mex)
可能是mex不支持符号运算吧。

程序太长了

其实就是中间代换的几个比较繁琐,但是没有多大的意义,可以忽略。最后得到的矩阵行列式det=0,要解出变量w的。现在矩阵一直出不来,不知道为什么。
3楼2015-04-30 10:15:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wkxj

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 信彼南山 at 2015-04-29 22:48:31
bessel函数应该都是调用的besselmx(这个好像是一个c编译成的mex)
可能是mex不支持符号运算吧。

程序太长了

clc;
tic;
epssys=1.0e-6;

syms w
kl1=w*0.003;
kl2=w*1.376e-004;
kt2=w*3.315e-004;
kz=0;                                         
a1 = sqrt(kl1^2-kz^2);                              
a2 = sqrt(kl2^2-kz^2);                              
b2 = sqrt(kt2^2-kz^2);                                                                                 
r=0.01;
bh2 = @(nu,z)besselj(nu,z)-1i*bessely(nu,z);

tg=zeros(5,5);
for n2=1:5
    for n3=1:5
        n=n2-3;
        n1=n3-3;
      
        A11=n*besselj(n,a1*r)/r-a1*besselj(n+1,a1*r);  
        B11=n*bh2(n,a1*r)/r-a1*bh2(n+1,a1*r);   
        C11=n*besselj(n,a2*r)/r-a2*besselj(n+1,a2*r);   
        C21=1i*n*besselj(n,b2*r);
      
            A121=0;
            A122=(2*n*lml1*a1+2*lml1*a1)*besselj(n+1,a1*r)/r;
            A123=lml1*a1^2*besselj(n+2,a1*r);
        A12=A121-A122+A123;
            B121=0;
            B122=(2*n*lml1*a1+2*lml1*a1)*bh2(n+1,a1*r)/r;
            B123=lml1*a1^2*bh2(n+2,a1*r);
        B12=B121-B122+B123;
            C121=(2*lmn2*n^2-2*lmn2*n)*besselj(n,a2*r)/r^2;
            C122=(4*lmn2*n+2*lmn2+2*n*lml2+2*lml2)*a2*besselj(n+1,a2*r)/r;
            C123=(2*lmn2*a2^2+lml2*a2^2)*besselj(n+2,a2*r);
        C12=C121-C122+C123;
            C221=(2*lmn2*1i*n^2-2*lmn2*1i*n)*besselj(n,b2*r)/(kt2*r^2);      
            C222=2*lmn2*1i*n*b2*besselj(n+1,b2*r)/(kt2*r);
        C22=C221-C222;
            C131=2*lmn2*(1i*n^2+n^2)*besselj(n,a2*r)/r^2;
            C132=2*lmn2*1i*n*a2*besselj(n+1,a2*r)/r;
        C13=C131-C132;
            C231=lmn2*(2*n-2*n^2)*besselj(n,b2*r)/r^2;
            C232=lmn2*2*n*b2*besselj(n+1,b2*r)/r;
            C233=lmn2*b2^2*besselj(n+2,b2*r);
        C23=C231+C232+C233;
            C341=b2^2*lmn2*n*besselj(n,b2*r)/(kt2*r);
            C342=b2^3*lmn2*besselj(n+1,b2*r)/kt2;
        C34=C341-C342;
        F1=C12*C23*C34;
        F5=C22*C13*C34;
        F7=C11*C23*C34;
        F10=C21*C13*C34;
        Tn1=A11*(F1-F5)-A12*(F7-F10);
        Tn2=B12*(F7-F10)-B11*(F1-F5);
        Tn=vpa(Tn1/Tn2);
        tg_1=Tn;
        tg(n2,n3)=str2double(vpa(tg_1));     
     
    end;
end;
tg
4楼2015-04-30 11:05:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 通信工程求调剂!!! +6 zlb770521 2026-04-14 6/300 2026-04-15 20:00 by 学员JpLReM
[考研] 化工学硕294分,求导师收留 +32 yzyzx 2026-04-12 36/1800 2026-04-14 17:45 by lhj2009
[考研] 材料专业344求调剂 +17 hualkop 2026-04-10 22/1100 2026-04-14 16:21 by sxdj2
[考研] 各位老师好,求调剂,本科211,一志愿天津大学生物与医药学硕,差两名录取。 +11 路六六jjj 2026-04-13 11/550 2026-04-14 16:01 by zs92450
[考研] 考研求调剂 +6 ban班小七 2026-04-11 6/300 2026-04-14 14:06 by 哆啦A梦只是个梦
[考研] 2026硕士调剂_能动_河南农业大学 +4 河南农业大学-能 2026-04-12 4/200 2026-04-13 22:01 by bljnqdcc
[基金申请] 2026 WR青拔 +3 冬日阳光CAS 2026-04-09 6/300 2026-04-13 18:40 by liuchb715
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +12 无情的小羊 2026-04-09 13/650 2026-04-13 14:17 by 张zhihao
[考研] 调剂 +6 青灯不负 2026-04-09 6/300 2026-04-11 20:35 by dongdian1
[考研] 085400 328分 求调剂 +10 喂你一个大橙子 2026-04-09 14/700 2026-04-11 19:53 by lqspecial
[考研] 352 求调剂 +6 yzion 2026-04-11 8/400 2026-04-11 16:24 by 明月此时有
[考研] 本人女孩 +7 吼吼, 2026-04-10 9/450 2026-04-11 14:45 by ACS Nano——
[考研] 农业管理302分求调剂 +3 xuening1 2026-04-10 3/150 2026-04-11 10:18 by zhq0425
[考研] 广东省 085601 329分求调剂 +14 Eddieddd 2026-04-10 14/700 2026-04-11 09:58 by bljnqdcc
[考研] 22408 352分求调剂0854类 +4 努力的夏末 2026-04-09 4/200 2026-04-11 09:57 by zhq0425
[考研] 22408 327分求调剂 +4 韵风kon 2026-04-10 4/200 2026-04-11 09:51 by 猪会飞
[考研] 085402通信工程调剂,有4项学科竞赛国奖(电赛国二),硕士研究生调剂自荐信。 +5 m永o不v言o弃m 2026-04-09 5/250 2026-04-11 09:33 by zhq0425
[考研] 调剂 +19 小张ZA 2026-04-10 20/1000 2026-04-10 22:08 by 猪会飞
[考研] 初试261 +3 Asht少 2026-04-10 6/300 2026-04-10 16:38 by Asht少
[考研] 301求调剂 +5 149. 2026-04-10 5/250 2026-04-10 15:45 by 柴小白
信息提示
请填处理意见