找回密码
 注册
Simdroid-非首页
查看: 158|回复: 4

用一个M积分函数文件,怎么求出多个积分值

[复制链接]
发表于 2011-5-4 15:02:34 | 显示全部楼层 |阅读模式 来自 江苏南京

  1. function Q=jifen (t)
  2. A=t.^2;
  3. B=log(t);
  4. C=t;
  5. D=1./t;
  6. y1=A+B;
  7. y2=C+D;
  8. Q=y1;
  9. end
复制代码
quadgk(@jifen,0,1)

问题是我需要y1 y2 的积分, quadgk只能求一个。quadv可以求多个,但是有奇异,所以想用quadgk来算。

我是想用简洁的方法,用quadgk一下算出多个积分值。
发表于 2011-5-4 16:07:12 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
可以用arrayfun来做啊
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-4 17:11:05 | 显示全部楼层 来自 江苏南京
2# qibbxxt
具体怎么做?
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-5 09:45:39 | 显示全部楼层 来自 江苏南京
  1.   function Q1 = jifen_10(tt)
  2.         x=(X1+X2)/2+tt.*(X2-X1)/LL; %当前积分边界的坐标
  3.         y=(Y1+Y2)/2+tt.*(Y2-Y1)/LL;
  4.                
  5.         zp=XP+s.*YP;% 当前力作用点坐标
  6.         [kesi0(1) kesi0(2)]=ChooseMain(zp(1),zp(2),s,aa,bb,1);
  7.         
  8.         z1=x+s(1).*y; %z关于t的表达式
  9.         z2=x+s(2).*y;   
  10.         [kesi1 kesi2]=ChooseMain(z1,z2,s,aa,bb,1);
  11.         
  12.         phi1=A(1,1)*log(R(1).*(kesi1-kesi0(1)))+L(1)*conj(A(1,1)).*log(1-1./(conj(kesi0(1)).*kesi1))...
  13.             +N(2)*conj(A(1,2)).*log(1-1./(conj(kesi0(2)).*kesi1));
  14.         phi2=A(1,2)*log(R(2).*(kesi2-kesi0(2)))+L(2)*conj(A(1,2)).*log(1-1./(conj(kesi0(2)).*kesi2))...
  15.             +N(1)*conj(A(1,1)).*log(1-1./(conj(kesi0(1)).*kesi2));
  16.         
  17.         dz1=R(1)-R(1)*m(1)./kesi1.^2;
  18.         dz2=R(2)-R(2)*m(2)./kesi2.^2;
  19.         
  20.         d_phi1=A(1,1)./(kesi1-kesi0(1))./dz1+conj(A(1,1))*L(1)./(kesi1.^2*conj(kesi0(1))-kesi1)./dz1+...
  21.             conj(A(1,2))*N(2)./(kesi1.^2.*conj(kesi0(2))-kesi1)./dz1; %对z求导
  22.         d_phi2=A(1,2)./(kesi2-kesi0(2))./dz2+conj(A(1,2))*L(2)./(kesi2.^2*conj(kesi0(2))-kesi2)./dz2+...
  23.             conj(A(1,1))*N(1)./(kesi2.^2.*conj(kesi0(1))-kesi2)./dz2; %对z求导

  24.         u11=2*real(p(1).*phi1+p(2).*phi2); %关于t的表达式
  25.         u21=2*real(q(1).*phi1+q(2).*phi2);
  26.         
  27.         sigma11=2*real(s(1)^2*d_phi1+s(2)^2*d_phi2);% 应力
  28.         sigma22=2*real(d_phi1+d_phi2);
  29.         sigma12=-2*real(s(1)*d_phi1+s(2)*d_phi2);
  30.         p11=sigma11*e1+sigma12*e2;% 边界力
  31.         p21=sigma12*e1+sigma22*e2;
  32.      
  33.         Q1= [u11 p11;
  34.              u21 p21];

  35.     end
复制代码
需要对 u11 p11 u21 p21积分,用quadv(@jifen_10,-1,0,1e-8)可以算,但是涉及到奇异积分。
请问怎么用quadgk能简介的求出,而不需要各个重新编写M函数文件?
回复 不支持

使用道具 举报

发表于 2011-5-8 23:18:01 | 显示全部楼层 来自 江苏南京
可以再加一个参数就好:
QQ:1759553924
专业数值计算
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 19:28 , Processed in 0.033401 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表