- 积分
- 0
- 注册时间
- 2009-7-14
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 messenger 于 2009-7-16 18:50 编辑
大家好 在看了论坛里关于分段积分的帖子之后,学会了怎么用分段积分,用小程序也做了测试,是可行的
但是在做这个的时候出了点错误
以下为程序:
g = 9.80665;
rou_a = 1.2255;
rou_w = 1000;
U10 = 10;
u_star = [num2str(U10),'.*sqrt((0.8+0.0065*',num2str(U10),')*1e-3)'];
c = ['sqrt(',num2str(g),'*k)'];
kp = g./((1.2*U10).^2);
h = ['1.24.*(k/',num2str(kp),'>=0 & k/',num2str(kp),'<0.31)+2.61.*(k/'...
,num2str(kp),').^0.65.*(k/',num2str(kp),'>=0.31 & k/',num2str(kp)...
,'<0.9)+2.28*(',num2str(kp),'/k).^0.65.*(k/',num2str(kp)...
,'>=0.9 & k/',num2str(kp),'<=10)'];
P = ['exp(-1.22*(1.2*',num2str(U10),'.*k.^0.5/',num2str(sqrt(g)),'-1).^2)'];
F_str = ['0.00162*',num2str(U10),'./(k.^2.5)./',num2str(sqrt(g)),...
'.*exp(-',num2str(g^2),'/(k.^2)./(1.2*',num2str(U10),').^4).*1.7.^',P,...
'.*',h,'.*(sech(',h,'.*theta)).^2'];
F = inline(F_str,'k','theta');
m0 = dblquad(F,1e-6,10*kp,-pi,pi)
式子见附件
以下为错误提示
??? Error using ==> inlineeval
Error in inline expression ==> 0.00162*10./(k.^2.5)./3.1316.*exp(-96.1704/(k.^2)./(1.2*10).^4).*1.7.^exp(-1.22*(1.2*10.*k.^0.5/3.1316-1).^2).*1.24.*(k/0.068102>=0 & k/0.068102<0.31)+2.61.*(k/0.068102).^0.65.*(k/0.068102>=0.31 & k/0.068102<0.9)+2.28*(0.068102/k).^0.65.*(k/0.068102>=0.9 & k/0.068102<=10).*(sech(1.24.*(k/0.068102>=0 & k/0.068102<0.31)+2.61.*(k/0.068102).^0.65.*(k/0.068102>=0.31 & k/0.068102<0.9)+2.28*(0.068102/k).^0.65.*(k/0.068102>=0.9 & k/0.068102<=10).*theta)).^2
??? Error using ==> mrdivide
Matrix dimensions must agree.
Error in ==> inline.subsref at 25
INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);
Error in ==> quad at 62
y = f(x, varargin{:});
Error in ==> inline.feval at 20
[varargout{1:max(1,nargout)}] = builtin('feval',varargin{:});
Error in ==> dblquad>innerintegral at 88
Q(i) = feval(quadf, intfcn, xmin, xmax, tol, trace, y(i), varargin{:});
Error in ==> quad at 62
y = f(x, varargin{:});
Error in ==> inline.feval at 20
[varargout{1:max(1,nargout)}] = builtin('feval',varargin{:});
Error in ==> dblquad at 64
Q = feval(quadf, @innerintegral, ymin, ymax, tol, trace, intfcn, ...
Error in ==> song at 37
m0 = dblquad(F,1e-6,10*kp,-pi,pi)
后面的先不管,现在想解决第一个错误,就是说F这个函数用inline不行的问题 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|