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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解
5 L" @3 L5 H: I  j+ Yclear;
- f: a+ f: y2 P/ l  W& n4 Fclose all: U, c- |$ h  t4 W* ~
syms a b c d e x L O P U t o p
! m# v; T6 Q1 aK=5;%常量
1 o; }8 ]$ c; Y. i+ C  \; x3 jh=2;%常量 多孔储液介质厚度/ R$ Y4 O7 Y# l! h+ q0 _" u6 `3 b
D=0.012;%半径
' _% ^8 p) j) h8 ]/ }H=0.2;%压缩后的高度
4 B0 p/ K# ^' ~L=@(x)0.2.*x;
$ \6 m" V! r2 v0 B0 Y% % % % 计算与孔隙率相关的brinkman数
( }8 U( b+ N" a; |c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解# B  ?: t' x5 _! e6 K$ m8 ?
t1=0.0033;%孔隙率
" k3 o1 l( l, i5 @. T1 ga=L./c(t1);%a为brinkman数
! G3 ]: ]/ c0 C4 o2 F% Ob=H./c(t1);
8 u3 K8 I  ?# L5 P: |( G- I1 M- O% % % % 计算方程中的f,控制此处f不与x一起变化  B. y9 ^1 [: H6 R! X& c
f=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));
% S* j$ p0 z( w% % % % 计算方程中常数余项C,此处x只与a有关
4 k  E; C$ L3 ?o=@(x)(a(x).^2.*(H-f)./(2.*f-H));
8 y0 n  P! W) x* G& w, lp=@(x)(a(x).^2./(2.*f-H));
( L1 i: v; _1 Y2 k& M& [O=int(o(x),0,1);5 m7 D+ v* o: Y+ Z1 g/ U
P=int(p,0,1);
1 A% \/ ~8 D/ l, Z. ec=O./P;3 s8 x. y3 |2 n3 P5 h! u7 }1 y& q
%%%%计算润滑升力
' y2 E, I) x) z/ r8 j6 T9 dd=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);5 e% ]$ U, u) G6 V& ?& q  E# J2 Q
U=int(d,0,1);
; i* M3 a1 x  z6 t; D7 k我的代码一直在报错,请求高手帮忙看看哪里出了问题。+ m# x0 i1 ^  L) y
错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。) `" h! V2 b6 y, F3 A- |: {
4 J  l: K" R& v! r8 i" A; \6 s' }
出错 runhuashengli (line 13)
) e7 b' [& V8 y0 `: Aa=L./c(t1);%a为brinkman数
& o( G6 |7 I( k1 f$ P( Q

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x7 Z2 q. A6 c2 d! F" A. A
K = 5;%常量
0 E, h4 m9 x. N. F' j. X! B1 g; `h = 2;%常量 多孔储液介质厚度
$ T/ J/ D9 K/ R' F* g6 R* LD = 0.012;%半径7 F9 L! C6 j( y' z9 C* `3 A; o
H = 0.2;%压缩后的高度
) {: C: j" K7 AL = @( x ) 0.2.*x;# {2 O) {/ s; n! `) N- ~
% % % % 计算与孔隙率相关的brinkman数
2 l( `1 u1 m  @% l7 I% b* K6 [$ ac = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解6 T7 J2 s- L/ s% J/ h
t1 = 0.0033;%孔隙率/ f+ ]$ U* M0 D. ]- ^
a =@( x ) L( x )./c( t1 );%a为brinkman数
& e( h* h, i# d" @8 Q9 x) Y4 xb = H./c( t1 );
6 f! G2 w8 \  W) T  B% % % % 计算方程中的f,控制此处f不与x一起变化3 Y, T. t5 O. C
f = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );4 p9 }+ p% ^: V- `" i
% % % % 计算方程中常数余项C,此处x只与a有关* X* c- }$ D8 @6 Q' O0 h2 I
o = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );
0 {# X5 ?0 g' [p = @( x )( a( x ).^2./( 2.*f-H ) );' ?! m0 [; x* g* N( h3 u: L; T2 Z
O = int( o( x ), 0, 1 );, b7 ^  A/ G* e
P = int( p( x ), 0, 1 );

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。
! t+ q3 Z6 \8 K& e5 [; X& R1 ~1 L' e9 K  Y( u
相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。0 f  w4 b& p+ G# n: C) u9 [

) B: I) X% K) L+ Y1 r/ G6 p# a! a再者,避免变量与函数重复命名,你既写了匿名函数
; O8 A: c4 v4 p) n3 i/ vc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解" x( A# A/ R# s8 Y. K& I
后面却又写了
! B6 T; Z8 W% e! P5 P/ Ac=O./P; %这算出来要么是个数值要么是个符号表达式5 ?( Z/ c! n" f/ n5 L" o/ ^, g
% z+ r* a& [6 C. U) c
可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的6 X$ W1 z! E, z$ E0 ~7 `" N
d = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );
( x! q( B' I# B6 ]& U4 v会出错$ a' b* g4 j! B8 v+ g

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则9 x- O( \. m5 {! P* u$ B; a- Z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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