|
|
用MATLAB自带卷积分函数计算弹性半空间在一三角脉冲荷载下自由表面的竖向位移,与文献正确结果相差10的5次方倍,但自己编写卷积分代码,反而得到文献结果。请大家帮我看下问题出在哪?谢谢! c]SXcA;Pmv F7!g+LPc< 另外,为何MATLAB自带卷积分函数结果矩阵的维数会是被卷积两矩阵维数之和减1? {O ]^8#v^ >/@wht4- j 1. 问题描述,如下图1所示: $]v=2j V2As 5 x3j)'`=15 {t<E*5N]a 2. 格林函数,如下图2所示: 3K2B7loD)~ >yr:L{{D}G 'MLp*3djF, l`S2bb6uMR 3. 参考文献正确解,如下图3所示: F xek# @ev"{dY i2]7Bf)oV w;@NYMK) 4. 本人直接用自编卷积分MATLAB代码算的出解(如下图4)及相应代码: h0m+u}oP_H #|<\q* < 0_F6t- z l?Gd4 clear; wKxw|Fpn clc; |\/`YRg> @d&(*9Y %loading history ]S@zhQ [Dr' dt=0.01; <'n'>@ ti=0.0008; BbU%p te=12; rC`pTN t=ti:dt:te; "DN0|%`M/ pt=(10*t./1.5).*(t>=0 & t<=1.5)+(20-10*t./1.5).*(t>1.5 & t<=3)+0.*(t>3); }q<p;4<\F m=length(pt); Y fRjr BC: d@
%load distribution in space &8p]yo2zO tB S+?N rp=0.1; '%Cc!63t* ri=0; /V-uo(n< . rc=0.1; <v&L90+s\; dr=0.001; H7{)"P]{f r=ri:dr:rc; O;zq(/,-l pr=1*(r<=rp)+0*(r>rp); 5`Q* n=length(pr); ,z4)A&F[c; lZ5LHUzP %load function with respect to t and r " pg5w 'q3<R%^Q p=pr.'*pt; /e/%mo 4eFqD; %green's function >A5*=@7bY? O52B G=1; JVfSmxy. cs=1; b|SDg%e for i=1:1:m srzlr-J for j=1:1:n 'e&L53n u(j,i)=heaviside(cs*t(i)-r(j))/(pi*G*sqrt(t(i)^2-(r(j)/cs)^2)); V{jQ=<)@e end 0d>|2QV end ,7HlYPec .r ,wc*SF %convolution and response of displacement 7:[u.cd |7Dc7p"D for i=1:1:m voX4A
pl for j=1:1:n W&g |