找回密码
 注册
关于网站域名变更的通知
查看: 461|回复: 3
打印 上一主题 下一主题

求解多元积分

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-9 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
clc;%总润滑方程求解
1 c+ p0 O  u! wclear;
: r8 M9 R" s* \# q* uclose all' o, y4 Y4 P  y5 A! y
syms a b c d e x L O P U t o p
; \6 n: G" p9 Q; m& U4 GK=5;%常量
  P4 m; b5 K0 Q! j) J0 _' x! wh=2;%常量 多孔储液介质厚度& d# j# @2 `' u! l# d* d! m( e
D=0.012;%半径+ s- V) N; j. Y0 J/ b9 ~: n' r( R% h
H=0.2;%压缩后的高度* H* p4 X4 ]# [& P0 C
L=@(x)0.2.*x;
( Y0 w: |$ N+ N' Z* O& I& {% % % % 计算与孔隙率相关的brinkman数
6 g" ^6 R8 u' I/ e" yc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解" h' S  K; F7 w: i
t1=0.0033;%孔隙率& x" F% v6 b8 @; U7 c" e. x  i
a=L./c(t1);%a为brinkman数
: H- S3 I$ f5 ^/ w: T. {b=H./c(t1);
/ h5 ~+ b0 Y: a# o  j; b7 V! o% % % % 计算方程中的f,控制此处f不与x一起变化7 x1 n5 n, s+ L1 q# B
f=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));
- U0 g' c. [" J. e2 e$ u% % % % 计算方程中常数余项C,此处x只与a有关. E$ a) w% ^$ ~9 g  \' }- L/ P
o=@(x)(a(x).^2.*(H-f)./(2.*f-H));2 r4 f' Z: e6 ^
p=@(x)(a(x).^2./(2.*f-H));/ g+ B& U, c7 F6 X1 \4 B% B
O=int(o(x),0,1);
) ]/ V- ^9 j% |! i! GP=int(p,0,1);0 `# s# N  }# b0 ~/ r+ ~! G$ Y5 z* s
c=O./P;2 J) x7 _6 |, i, b( O
%%%%计算润滑升力
6 I+ K" Z3 M: c$ {d=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);2 {6 N# x# g" [3 }0 n3 c0 Z1 _
U=int(d,0,1);  |  q; A2 Y3 s. u% g1 f- b1 @$ w
我的代码一直在报错,请求高手帮忙看看哪里出了问题。! u0 `0 q& K8 }/ H+ o. R
错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。
$ e* J& q- p9 v5 a* i5 j! j' B9 M6 P* R  _
出错 runhuashengli (line 13)
. r% x" Z; s7 u! E  Y0 }0 Ua=L./c(t1);%a为brinkman数
% l" t) I3 `1 s+ B

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则
7 I$ h: n7 T  x' g' R

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。, E. b& H- b6 S8 P% T! B( H8 Q% \
* F/ L7 i# B) h5 v) T: W! P. L5 `
相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。- w! ?% c! c, I! p+ ~

: y# Z& g3 D2 {+ G再者,避免变量与函数重复命名,你既写了匿名函数
4 t, f8 s6 }' [+ Qc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
8 _. S- V5 @6 C- T) B3 A6 c后面却又写了! w/ {5 ^0 I9 N
c=O./P; %这算出来要么是个数值要么是个符号表达式5 u# F3 U: W; b* J; `  \% X

( F- ^  h( N) V" H0 q* Q2 }0 J/ ]" l可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的
* P7 n) F) u- u3 T$ hd = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );5 N4 U% m' p9 b2 ^3 ~' w" \
会出错
4 i1 p3 \0 R9 V; ?& a

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x) d, z) f. C; m0 c( B( I
K = 5;%常量
' V- J/ u7 `2 s! m# \, t! ah = 2;%常量 多孔储液介质厚度- y) X$ \) n: }
D = 0.012;%半径) P8 _7 _9 i$ ?1 o6 {
H = 0.2;%压缩后的高度; H1 }& G+ R, M9 R0 L$ L, f
L = @( x ) 0.2.*x;
+ k+ Q+ @9 U1 J1 w  K% % % % 计算与孔隙率相关的brinkman数
9 O+ E4 c6 \* c9 xc = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解$ a' a9 o: c: N, q
t1 = 0.0033;%孔隙率
5 B% `$ H2 [6 l0 K# N1 D) C" G1 t3 Aa =@( x ) L( x )./c( t1 );%a为brinkman数8 T3 s! i: |1 `2 H$ r) p8 s
b = H./c( t1 );
3 y8 f% H; i) q7 p4 [% % % % 计算方程中的f,控制此处f不与x一起变化
" @9 l: \+ \* B' of = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );
0 y7 X, u! U4 f5 I% % % % 计算方程中常数余项C,此处x只与a有关
4 G' ?; E! K9 Qo = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );
3 _3 M( y3 I) E( h) p, Ap = @( x )( a( x ).^2./( 2.*f-H ) );. l6 q0 K/ n0 B
O = int( o( x ), 0, 1 );
  K" T2 p2 [: c1 t& K3 mP = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-31 10:26 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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