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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解
8 V6 [1 {- V. L6 iclear;
3 ?% ~5 J, Y! ^7 c! Vclose all& r( g* Z) x0 G) x9 M3 f1 y( y
syms a b c d e x L O P U t o p/ h; @! n' I* \9 s! W/ [. ^% W
K=5;%常量9 u+ e6 Z( [% ?( ~
h=2;%常量 多孔储液介质厚度
5 `! j+ F# k+ U9 [& LD=0.012;%半径* J7 B, }; C) {5 T$ q% w8 j
H=0.2;%压缩后的高度1 ^) N6 F9 N8 O- X. D
L=@(x)0.2.*x;- F/ X. [$ r7 }$ V
% % % % 计算与孔隙率相关的brinkman数
) V/ i  {, b/ dc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解6 g% L7 ]* E" R, z; V
t1=0.0033;%孔隙率) O* J. D& {- u
a=L./c(t1);%a为brinkman数
! W" w3 |! p/ jb=H./c(t1);
0 H& s+ e( p2 s; [' \0 B! t% % % % 计算方程中的f,控制此处f不与x一起变化
, r) f) @, }0 q8 ~9 Z9 If=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));0 z$ W% U  Q5 ]/ u0 p8 v7 ?& S& C/ h
% % % % 计算方程中常数余项C,此处x只与a有关' I$ m3 T/ A' g- @3 t
o=@(x)(a(x).^2.*(H-f)./(2.*f-H));5 t" H/ U4 M. ]: G. o
p=@(x)(a(x).^2./(2.*f-H));0 s: {0 K+ d# c3 o6 {
O=int(o(x),0,1);
' A8 @2 L* u% t# B0 M: VP=int(p,0,1);
9 \4 c. ?5 U7 x( @c=O./P;0 V4 C% B- E8 b5 ~
%%%%计算润滑升力  ?/ A" m3 ]- A, F# t6 E# Z. f% X% `
d=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);. n% G% n: j% P
U=int(d,0,1);
" ]; ]8 s. a' ]4 z3 I/ P! L0 u我的代码一直在报错,请求高手帮忙看看哪里出了问题。; z- m' J1 o6 C0 k. G
错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。% q2 A. D& n3 K2 N/ P1 t

3 Q. G/ }0 E# E0 i. i出错 runhuashengli (line 13)
: g/ Q( y! A! c& B% U* \5 v1 y4 ]a=L./c(t1);%a为brinkman数* y2 @+ g( r2 u. }7 o) u/ f

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则, v* K7 R( q- N: M# P

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。: g9 V4 j" _' \1 k$ {4 r8 l8 p

: s) Q. D+ E$ {5 ]' w0 h: `& U相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。3 g) c+ J  F9 o+ r6 ^4 ?7 {

7 d" K/ I# w0 ^7 N1 h! S再者,避免变量与函数重复命名,你既写了匿名函数
8 |! L& L: i: h0 ]1 V1 Rc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解* p0 F" _4 z9 D: o$ r
后面却又写了
1 I, [0 f$ j8 ^c=O./P; %这算出来要么是个数值要么是个符号表达式9 p$ x1 n6 E9 E
) m2 ]9 E* Q# K& e2 Y
可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的; k% G: M+ I; K6 y9 }
d = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );
! q8 g0 c7 A4 T; D" F2 ]会出错8 J0 [& ]% b9 R% U# |4 I' t$ Z

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x& z8 s5 p) b7 R6 R
K = 5;%常量
2 n6 w' J+ h5 `  o. O- d3 [0 Mh = 2;%常量 多孔储液介质厚度
' n3 o- }, L* g( iD = 0.012;%半径
0 T6 S3 ~# I3 V2 \; v5 g: Z$ _4 yH = 0.2;%压缩后的高度/ s# }! ?# \8 P
L = @( x ) 0.2.*x;
( u; {4 c7 l! v! p0 }) D% % % % 计算与孔隙率相关的brinkman数
5 Y# ?$ H( o2 fc = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解- P4 Q4 v, U; z; S
t1 = 0.0033;%孔隙率. d0 v' R6 B6 Y7 l5 s+ E3 B
a =@( x ) L( x )./c( t1 );%a为brinkman数
4 p2 y+ b# o% }. B; {  b/ {b = H./c( t1 );
3 g8 k( [( U( |- ~  M% % % % 计算方程中的f,控制此处f不与x一起变化
% o3 o: y$ p( j  Y: Pf = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );9 q' }4 R( H; r5 n) `
% % % % 计算方程中常数余项C,此处x只与a有关
. ]4 U+ E( P' U" L7 b: n' io = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );
# v& \, s# K& H9 C, Gp = @( x )( a( x ).^2./( 2.*f-H ) );% p) M$ D  f; E) A" N3 Q1 C
O = int( o( x ), 0, 1 );
' _1 w# L$ w  UP = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-13 10:32 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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