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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解% j: w: A4 P5 n2 w. C$ w  W3 ^$ x
clear;
+ ~1 y- X4 N2 o0 N; Pclose all
! K3 T+ q& s, o9 h: j* W- Asyms a b c d e x L O P U t o p
- y7 [/ b1 ^% J, x7 |' D( h  \K=5;%常量$ A4 G. C% a7 q" ?8 P
h=2;%常量 多孔储液介质厚度
( b8 v$ ?/ J7 D. @6 s, g* ]5 a: gD=0.012;%半径/ K  s" W( Y3 K5 }# v1 W# C5 r
H=0.2;%压缩后的高度2 Q) ?* r* k6 S, e; K) b) i' G
L=@(x)0.2.*x;3 j2 a( z+ x" U. ~2 F) B; B3 @
% % % % 计算与孔隙率相关的brinkman数
5 c: @( n: Z# f8 j% @c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
7 C( v0 B! r8 w1 R' _t1=0.0033;%孔隙率
, n  D" _! f8 M: B) }a=L./c(t1);%a为brinkman数
  p5 Z# l5 O+ C+ ~' H  \b=H./c(t1);
6 Q- {/ ^4 w9 Q7 b9 @. y" C% % % % 计算方程中的f,控制此处f不与x一起变化
( S6 Z9 ?6 c8 c) k) e4 l( w% qf=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));
  ^( R3 l! }$ _" F$ d5 |% % % % 计算方程中常数余项C,此处x只与a有关+ z; `$ k& d) f0 j" i8 A, f6 P( t
o=@(x)(a(x).^2.*(H-f)./(2.*f-H));
5 z; R. z4 G  j2 P2 M) Jp=@(x)(a(x).^2./(2.*f-H));$ s6 L7 Q+ H: b# ^: W* ]$ Q# C
O=int(o(x),0,1);
3 a% L" a8 o: k2 mP=int(p,0,1);4 [% t  h; w9 L' i4 J: Q
c=O./P;
! Q# P( ?" \, V. k! P. \5 b%%%%计算润滑升力# C( v' Y/ K- x+ [
d=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);
% R( X/ D+ s. pU=int(d,0,1);
( p+ j( Z: D/ _我的代码一直在报错,请求高手帮忙看看哪里出了问题。$ ~8 d2 D- w' W3 D: [9 H
错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。" ]5 A$ h+ R* j
" l2 ]% ~3 w* S9 f9 |. Y7 j
出错 runhuashengli (line 13)- w1 U2 `9 a" I* G8 b
a=L./c(t1);%a为brinkman数
! v, a- W$ `+ Y% I6 X- B) ^. }

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则
  |6 F1 v& j  {0 A6 Y6 }

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。
6 t, n. U. Q) i: f5 c5 z4 {2 E' I# y* V. p9 H! B! E; E( [6 P
相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。, ~4 _; [" e- m0 c' c7 J

1 X$ {/ X4 c/ E  x再者,避免变量与函数重复命名,你既写了匿名函数4 d5 l2 R9 Y- o
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解' {, i% I5 e# \; n1 A9 f3 ]0 `! J
后面却又写了4 N5 z9 Y% A# P8 [+ _
c=O./P; %这算出来要么是个数值要么是个符号表达式! o! \% H" v# I" ^' [$ c1 R
" P1 o: I4 f# U# q
可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的
7 @1 o# g- E1 A& _2 [d = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );5 w" Y' n. D( T- }  g5 P
会出错
& t0 l4 e! X5 X7 N* s

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x' ~9 }/ \! }: x. x8 ?5 g; F( L2 E
K = 5;%常量2 x" d! U1 y2 g6 ~$ u0 L" _
h = 2;%常量 多孔储液介质厚度8 z6 S! a3 f: K$ J
D = 0.012;%半径. k& x( ]$ S3 L! d" O2 S
H = 0.2;%压缩后的高度" x8 e6 D$ ]* n: \$ F4 z$ S
L = @( x ) 0.2.*x;
5 Y4 _7 d9 _9 N. s% % % % 计算与孔隙率相关的brinkman数  B! {' a; i  t& l. ]. Q4 |8 j
c = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解' s% m& Q& z. j
t1 = 0.0033;%孔隙率1 V( {  o1 D5 ]% M6 ?% r9 v
a =@( x ) L( x )./c( t1 );%a为brinkman数
  T% l9 a: b* n3 H3 J" ~1 {& Ub = H./c( t1 );% V( W( G: }! k& A
% % % % 计算方程中的f,控制此处f不与x一起变化+ \( X/ E9 ?/ [
f = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );4 a3 S/ A% z9 l! `
% % % % 计算方程中常数余项C,此处x只与a有关: P4 Y9 x0 P- L: ]
o = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );  R( B0 e) d2 E
p = @( x )( a( x ).^2./( 2.*f-H ) );
# C) I  T( W4 I9 i- W- l% lO = int( o( x ), 0, 1 );& y. G7 U  f8 c+ B0 \' X
P = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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