用一个M积分函数文件,怎么求出多个积分值
function Q=jifen (t)
A=t.^2;
B=log(t);
C=t;
D=1./t;
y1=A+B;
y2=C+D;
Q=y1;
end
quadgk(@jifen,0,1)
问题是我需要y1 y2 的积分, quadgk只能求一个。quadv可以求多个,但是有奇异,所以想用quadgk来算。
我是想用简洁的方法,用quadgk一下算出多个积分值。 可以用arrayfun来做啊 2# qibbxxt
具体怎么做? function Q1 = jifen_10(tt)
x=(X1+X2)/2+tt.*(X2-X1)/LL; %当前积分边界的坐标
y=(Y1+Y2)/2+tt.*(Y2-Y1)/LL;
zp=XP+s.*YP;% 当前力作用点坐标
=ChooseMain(zp(1),zp(2),s,aa,bb,1);
z1=x+s(1).*y; %z关于t的表达式
z2=x+s(2).*y;
=ChooseMain(z1,z2,s,aa,bb,1);
phi1=A(1,1)*log(R(1).*(kesi1-kesi0(1)))+L(1)*conj(A(1,1)).*log(1-1./(conj(kesi0(1)).*kesi1))...
+N(2)*conj(A(1,2)).*log(1-1./(conj(kesi0(2)).*kesi1));
phi2=A(1,2)*log(R(2).*(kesi2-kesi0(2)))+L(2)*conj(A(1,2)).*log(1-1./(conj(kesi0(2)).*kesi2))...
+N(1)*conj(A(1,1)).*log(1-1./(conj(kesi0(1)).*kesi2));
dz1=R(1)-R(1)*m(1)./kesi1.^2;
dz2=R(2)-R(2)*m(2)./kesi2.^2;
d_phi1=A(1,1)./(kesi1-kesi0(1))./dz1+conj(A(1,1))*L(1)./(kesi1.^2*conj(kesi0(1))-kesi1)./dz1+...
conj(A(1,2))*N(2)./(kesi1.^2.*conj(kesi0(2))-kesi1)./dz1; %对z求导
d_phi2=A(1,2)./(kesi2-kesi0(2))./dz2+conj(A(1,2))*L(2)./(kesi2.^2*conj(kesi0(2))-kesi2)./dz2+...
conj(A(1,1))*N(1)./(kesi2.^2.*conj(kesi0(1))-kesi2)./dz2; %对z求导
u11=2*real(p(1).*phi1+p(2).*phi2); %关于t的表达式
u21=2*real(q(1).*phi1+q(2).*phi2);
sigma11=2*real(s(1)^2*d_phi1+s(2)^2*d_phi2);% 应力
sigma22=2*real(d_phi1+d_phi2);
sigma12=-2*real(s(1)*d_phi1+s(2)*d_phi2);
p11=sigma11*e1+sigma12*e2;% 边界力
p21=sigma12*e1+sigma22*e2;
Q1= [u11 p11;
u21 p21];
end需要对 u11 p11 u21 p21积分,用quadv(@jifen_10,-1,0,1e-8)可以算,但是涉及到奇异积分。
请问怎么用quadgk能简介的求出,而不需要各个重新编写M函数文件? 可以再加一个参数就好:
QQ:1759553924
专业数值计算
页:
[1]