| 查看: 1554 | 回复: 0 | ||
[求助]
大神求助!!!!MATLAB循环运行不下去~~~~
|
|
clear all; %求地质参数 Vp=[1.70 1.96 2.71 3.76 4.69 6.40]; Vs=[0.98 1.13 1.57 2.17 2.71 3.70]; Den=[1.28 1.36 1.59 1.91 2.19 2.71]; Z=[0 0.18 0.73 1.71 2.9 5.58]; miu=zeros(1,length(Vs)); for j=1:1:length(Vs) miu(j)=(Vs(j))^2*Den(j); end WL=zeros(1,length(Vp)); for j=1:1:length(Vp) WL(j)=(Vp(j))^2*Den(j)-2*miu(j); end N=2048; f=(0:N-1)*100/N; A=zeros(1,length(Vp)); B=A; for j=1:1:6 A(j)=4*miu(j)*(WL(j)+miu(j))/(WL(j)+2*miu(j)); B(j)=1/(WL(j)+2*miu(j)); end AAA=zeros(2,2); I=eye(2); for i=2:1:2%N/4次循环,求解每个频率所对应的波数 syms kk; %计算E矩阵 for j=1:1:6 C(j)=vpa((kk^2-(2*pi*f(i)/Vs(j))^2)^0.5,5);%v D(j)=vpa((kk^2-(2*pi*f(i)/Vp(j))^2)^0.5,5);%r X(j)=kk^2+(C(j))^2; X(j)=vpa(X(j),5); E11{j}=[Vp(j)*kk Vs(j)*C(j);Vp(j)*D(j) Vs(j)*kk]/(2*pi*f(i)); E11{j}=vpa(E11{j},5); E12{j}=[Vp(j)*kk Vs(j)*C(j);-Vp(j)*D(j) -Vs(j)*kk]/(2*pi*f(i)); E12{j}=vpa(E12{j},5); E21{j}=[-2*Vp(j)*miu(j)*D(j)*kk -Vs(j)*miu(j)*X(j);-Vp(j)*miu(j)*X(j) -2*Vs(j)*miu(j)*C(j)*kk]/(2*pi*f(i)); E21{j}=vpa(E21{j},5); E22{j}=[2*Vp(j)*miu(j)*D(j)*kk Vs(j)*miu(j)*X(j);-Vp(j)*miu(j)*X(j) -2*Vs(j)*miu(j)*C(j)*kk]/(2*pi*f(i)); E22{j}=vpa(E22{j},5); end %计算对角向量 for j=1:1:5 digits(6); Ad11(j)=vpa(exp(-D(j)*(Z(j+1)-Z(j)))); Ad22(j)=exp(-C(j)*(Z(j+1)-Z(j))); Ad22(j)=vpa(Ad22(j)); Ad{j}=[Ad11(j) 0;0 Ad22(j)]; end %计算修改系数 for j=1:1:4 digits(6); Au11(j)=vpa(exp(-D(j+1)*(Z(j+2)-Z(j+1)))); Au22(j)=vpa(exp(-C(j+1)*(Z(j+2)-Z(j+1)))); Au{j}=[Au11(j) 0;0 Au22(j)]; EE1{j}=[E11{j+1} -E12{j};E21{j+1} -E22{j}]^(-1); EE1{j}=vpa(EE1{j}); EE2{j}=[E11{j} -E12{j+1};E21{j} -E22{j+1}]; Add{j}=[Ad{j} AAA;AAA Au{j}]; MRT{j}=vpa(EE1{j}*EE2{j}*Add{j}); Tdd{j}=[MRT{j}(1) MRT{j}(5);MRT{j}(2) MRT{j}(6)]; Rud{j}=[MRT{j}(9) MRT{j}(13);MRT{j}(10) MRT{j}(14)]; Rrdu{j}=[MRT{j}(3) MRT{j}(7);MRT{j}(4) MRT{j}(8)]; Tu{j}=[MRT{j}(11) MRT{j}(15);MRT{j}(12) MRT{j}(16)]; end %计算第N层修正系数 digits(6); EE1{5}=[E11{6} -E12{5};E21{6} -E22{5}]^(-1); EE2{5}=[E11{5}*Ad{5};E21{5}*Ad{5}]; MRT{5}=vpa(EE1{5}*EE2{5}); %计算广义修正系数 Rdu{5}=[MRT{5}(3) MRT{5}(7);MRT{5}(4) MRT{5}(8)]; for k=1:1:4 Rdu{k}=AAA; end for j=4:-1:1 digits(4); Rud{j}=vpa(Rud{j}); Tdd{j}=vpa(Tdd{j}); Tu{j}=vpa(Tu{j}); Rdu{j+1}=vpa(Rdu{j+1}); Td{j}=vpa((I-Rud{j}*Rdu{j+1})^(-1)*Tdd{j}); Rdu{j}=vpa(Rrdu{j}+Tu{j}*Rdu{j+1}*Td{j}); end end 大神帮忙看一下:程序在运算到最后一个j=4:-1:1的循环,只能算一个循环即当j算到3时就算不下去了。我试着看了一下,第一个循环的结果Td{4},Rdu{4}输出时显示“MATLAB输出已截断。文本超出命令行窗口显示的行长度,最多为 25,000 个字符”,这是不是说明我的程序有错误,还望大神们帮忙看一下,感激不尽!!!1 |
» 猜你喜欢
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
假如你的研究生提出不合理要求
已经有5人回复
所感
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有28人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复












回复此楼