matlab green函数,地基土的传Green函数编辑中……

function [Gzr,Gzz,Gr,Gz]=Green(Ang_vel,kr)

%

% Green

%  Gree函数编写

%  已知地基土参数:G,E,Poission(泊松比),Damp(阻尼比)土体密度

% Lame常数 Lame_one=λ,Lame_two=μ (理想弹性介质条件)

% 波的振动角速度用Ang_vel

for Ang_vel=0:0.1:50

for kr=0:0.01:3;

E=[44e6,507e6]';                     % 各土层弹性模量

Poission=[0.497,0.48]';             % 各土层泊松比

Damp=[0.05,0.05]';       % 各土层阻尼比

Dens=[1475,1898]';            % 各土层密度

h=[5.5];                     % 各土层厚度

temp_one=Poission.*E;

temp_two=(1+Poission).*(1-2.*Poission);

Lame_one=temp_one./temp_two;

Lame_two=E./(2.*(1+Poission));

Cp=sqrt((Lame_one+2*Lame_two)./Dens);     % P波波速

Cs=sqrt(Lame_two./Dens);                  % S波波速

Kp=Ang_vel./Cp;                           % P波波数

Ks=Ang_vel./Cs;                           % S波波数

%%%%%%%% 在考虑阻尼介质下的 Lame常数 (复阻尼理论下)

Lame_One=(1+2*i*Damp).*Lame_one;

Lame_Two=(1+2*i*Damp).*(Lame_one+Lame_two)-Lame_One;

Lame_E=(1+2*i*Damp).*E;

Lame_cp=(1+i*Damp).*Cp;

Lame_cs=(1+i*Damp).*Cs;

Lame_kp=(1-i*Damp).*Kp;

Lame_ks=(1-i*Damp).*Ks;

%%%%%%%%%%%%%%%下列计算公式均采用复阻尼条件下参数

n=length(E)-1;

for k=1:n

temp_a=-(Poission(k)*kr)/(1-Poission(k));

temp_b=(1-2*Poission(k))/(2*Lame_One(k)*(1-Poission(k)));

temp_c=-Dens(k)*Ang_vel*Ang_vel;

temp_d=(2*Lame_One(k)*kr*kr)/(1-Poission(k))-temp_c;

temp_e=(Poission(k)*kr)/(1-Poission(k));

temp_f=(1/Lame_Two(k));

B(:,:,k)=[ 0,       kr,      0,        temp_f

temp_a,    0,    temp_b,          0

0,      temp_c,   0,           -kr

temp_d,    0,    temp_e,         0   ];

end

for m=1:n

Q(:,:,m)=exp(h(m)*ones(4,4).*B(:,:,m));

end

if n==1

A(:,:,1)=Q(:,:,1);

else

for j=2:n

A(:,:,j)=A(:,:,j-1)*Q(:,:,j);

end

end

T=A(:,:,n);

%%%%%%%%%%%%%%%%%%%%%%%%%%%

a(n+1)=sqrt(kr^2-Lame_kp(n+1)^2);

b(n+1)=sqrt(kr^2-Lame_ks(n+1)^2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%

S1=[T(1,1),T(1,2);

T(2,1),T(2,2)];

S2=[T(3,1),T(3,2);

T(4,1),T(4,2)];

S3=[kr,    -kr*b(n+1);

a(n+1),    -kr^2];

temp_s1=-Lame_One(n+1)*(2*kr^2-Lame_ks(n+1)^2);

temp_s2=2*Lame_One(n+1)*kr^2*b(n+1);

temp_s3=-2*Lame_One(n+1)*kr*a(n+1);

temp_s4=Lame_One(n+1)*(2*kr^2-Lame_ks(n+1)^2)*kr;

S4=[temp_s1, temp_s2

temp_s3,  temp_s4];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

S=[S1,S2;S3,S4];

T1=[T(1,3),T(2,3),T(3,3),T(4,3)]';

[Gzr,Gzz,Gr,Gz]=(-1/(2*pi))*S\T1;

end

end

end

%%%%%%%%%%%%%错误之处%%%%%%%%%%%%%%%%%%%

Error using  \

Too many output arguments.

Error in Untitled2 (line 75)

[Gzr,Gzz,Gr,Gz]=(-1/(2*pi))*S\T1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

求大神指点,我是初学者!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值