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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解. m, |6 s( a" ^  k0 m
clear;3 c! W/ F' v- g# S- n/ L" u. b
close all
- x/ v' W/ C* l, msyms a b c d e x L O P U t o p0 N. ~7 u+ R8 t3 D0 J& V* W( Z
K=5;%常量' D. X8 ?: ^* }% U$ Q
h=2;%常量 多孔储液介质厚度5 {5 d- I* S! {8 l" D- v* A/ Z, p
D=0.012;%半径
" |* J7 o' h) L8 QH=0.2;%压缩后的高度
1 A3 T; ~& D2 v' }( jL=@(x)0.2.*x;
8 ?% r( J9 S7 k: D% % % % 计算与孔隙率相关的brinkman数6 _' Y4 L: D7 J6 H0 b) C+ `' ^2 A
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
8 K) f4 m7 s( l6 l( v# Zt1=0.0033;%孔隙率/ z; B* u: L4 ^6 P1 ]1 F$ D
a=L./c(t1);%a为brinkman数2 |$ _) k& E- B& U. C& [
b=H./c(t1);
% M! {6 h/ ]) k% % % % 计算方程中的f,控制此处f不与x一起变化$ N; y8 X9 \5 |; I% j" {
f=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));: r3 y8 A1 ]: t5 W' B8 g4 D
% % % % 计算方程中常数余项C,此处x只与a有关
' I! O" O: t2 U# @  f: e1 C3 M4 Eo=@(x)(a(x).^2.*(H-f)./(2.*f-H));
8 i$ p9 |8 D$ }$ t  Yp=@(x)(a(x).^2./(2.*f-H));6 n" u6 c) ~$ K' ]
O=int(o(x),0,1);; L- P4 L. r1 Y- O
P=int(p,0,1);' \) x0 m+ n: N% H9 w1 K8 L
c=O./P;0 U2 \. ^: J& ~% N( g' m
%%%%计算润滑升力9 g" }3 o( Y7 T8 A& ]
d=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);, m" ], ~7 C' j' H8 C: N$ {2 d
U=int(d,0,1);) A- q5 u; V, T+ `0 K( Q! e
我的代码一直在报错,请求高手帮忙看看哪里出了问题。
1 ]- u. s- o! G0 D3 x错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。
% x9 g7 ~5 A0 s$ a: K0 D
  h+ t% |5 Q$ h/ s! B9 M7 c出错 runhuashengli (line 13); r) v0 [7 S. S. P8 [3 J8 Q' a
a=L./c(t1);%a为brinkman数# d8 Q- D2 x  Y

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则4 T& C6 X+ T  i

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。
# A9 ]3 f5 n$ i& A2 J- s
7 d) H( E+ _9 t% ?( d7 a相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。
& i# o0 b- x6 o% b' z2 d  g% o* W% p1 u/ c# z
再者,避免变量与函数重复命名,你既写了匿名函数! e' _" _% o9 O
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
9 N) `) m- l. ~  m后面却又写了5 K6 ^1 o7 W+ ?9 t. n
c=O./P; %这算出来要么是个数值要么是个符号表达式
, ^' H3 r1 |  F3 m+ z
0 `; @* x8 {" D0 H; u4 `6 A1 E5 [9 z可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的# ?+ I5 z. H; X6 Z' S5 a# a3 j
d = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );
7 u. n) l( K5 E$ y+ c8 d1 e会出错4 N/ i! u% L- x* S

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x
4 U1 \! ?% T9 E- p7 H: GK = 5;%常量( G- W( m1 N7 T$ u/ c- @5 [% E
h = 2;%常量 多孔储液介质厚度
$ }# N/ n" b) R3 SD = 0.012;%半径
) k+ s* j9 t/ M0 C* SH = 0.2;%压缩后的高度+ L, B2 @& R& X& k
L = @( x ) 0.2.*x;
+ o) E" v; v3 Q% % % % 计算与孔隙率相关的brinkman数
$ O4 Z+ x' J( e8 |0 l. t- Rc = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解
/ d2 E6 A0 `# X  @8 R" _3 Rt1 = 0.0033;%孔隙率
3 t1 n, H3 g8 Ya =@( x ) L( x )./c( t1 );%a为brinkman数
& P, w5 }! Y. Ib = H./c( t1 );
! E" B/ y4 w, _( _- ]: H' z% % % % 计算方程中的f,控制此处f不与x一起变化5 ~8 W0 c9 T" a% q4 t
f = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );
% t* C( D* Q8 e! m0 M/ _' |% % % % 计算方程中常数余项C,此处x只与a有关/ W! d! R0 O8 n% q  q, g
o = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );
9 T. X; c# Q. \1 A" Np = @( x )( a( x ).^2./( 2.*f-H ) );
0 S+ \3 W; J0 O& H6 j5 eO = int( o( x ), 0, 1 );
1 T2 s6 }& F# i( Z- Q) yP = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 01:45 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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