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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解
, |& `* w' z0 U8 m! F7 X4 rclear;- Q* B% O$ A- t  x# q
close all
4 @6 I6 R0 k: b2 Dsyms a b c d e x L O P U t o p0 s4 [# n2 B( U) C" \! L
K=5;%常量3 u# Z; `& u! R3 ]) O8 E7 O
h=2;%常量 多孔储液介质厚度! x% j0 f: q' z* V, B+ W
D=0.012;%半径. J  x% X2 e" I
H=0.2;%压缩后的高度
" m- o$ p* `" AL=@(x)0.2.*x;! {$ t% j. W) w% K) x# h' J' F. b
% % % % 计算与孔隙率相关的brinkman数4 `# y% |# R1 u- o* p2 G
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解4 |3 ^) H% c2 S" S5 G2 j
t1=0.0033;%孔隙率
! u/ q+ z3 V1 ^6 Z* e0 wa=L./c(t1);%a为brinkman数
7 w+ F% R$ y# }8 {b=H./c(t1);
1 N, s8 d3 u1 h% % % % 计算方程中的f,控制此处f不与x一起变化  T- p) I& M  _6 ]4 [
f=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));; G7 f' ^( p' Z; M0 ], T' @, _9 i
% % % % 计算方程中常数余项C,此处x只与a有关7 b# V4 q2 y$ |1 @1 [: l* N& D) l# x
o=@(x)(a(x).^2.*(H-f)./(2.*f-H));
" ~3 v  ~7 x+ H0 L, W  Ip=@(x)(a(x).^2./(2.*f-H));6 c1 @$ [( R3 K+ M1 H8 r
O=int(o(x),0,1);
( K9 j) {% f" O; p$ }/ n& {P=int(p,0,1);
4 u1 x( P& {, i% L$ fc=O./P;  f1 Y$ O0 s8 l: h6 o& a# F
%%%%计算润滑升力4 l* N; ]9 e8 T1 j9 S! P$ J) f) `
d=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);
+ `! W" y# D# Z5 @9 G! M+ Y5 MU=int(d,0,1);
+ X4 D0 n, A. V' B: l- h我的代码一直在报错,请求高手帮忙看看哪里出了问题。/ K& S! F0 F' N8 \$ H4 o, N
错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。5 j8 U* x6 y4 Q# \! ^7 L
1 b6 H# I9 T+ s& I" y
出错 runhuashengli (line 13)
, B/ p: Y; C3 F" ~. ]) V& za=L./c(t1);%a为brinkman数! b# w- j( B8 N. Z3 {

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则
0 |3 `6 N+ t+ H: b& E

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。
, q+ n7 `% I6 R2 v, S" t( j/ W( {" I
: B6 m0 L# b' X- M! T9 s相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。1 W7 t5 {* q/ G, n, z
1 p6 Z* C+ q$ [7 Y4 g
再者,避免变量与函数重复命名,你既写了匿名函数
0 U  C2 t: t$ K$ m8 B& F5 t( Kc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解: A$ `1 ^" j# ~0 r$ B
后面却又写了# Q& _9 h5 ^2 x1 B! Z
c=O./P; %这算出来要么是个数值要么是个符号表达式& A( _( H6 u# n7 C4 x, O& w
$ F1 R9 s$ Y: Z; a( T
可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的
6 v+ p! @! `! B3 E" a: [# q: [d = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );; I" o9 c8 X' v6 {2 B  _; _
会出错
7 p$ n6 g9 s3 C" W' U6 f4 n+ K" P

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x' Z- G$ a- V' t- t/ B' J) |0 c; Y0 y
K = 5;%常量5 K( S1 f' \  s
h = 2;%常量 多孔储液介质厚度
: {' B0 L+ }' f0 d+ y5 }D = 0.012;%半径& r, t3 l( E) N. x" f/ B
H = 0.2;%压缩后的高度
- q( m7 j$ P# r+ S3 g; U6 L. q9 g" O+ AL = @( x ) 0.2.*x;2 V6 ?, c1 S5 B- ]6 F. j
% % % % 计算与孔隙率相关的brinkman数# S& J* A9 D4 @
c = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解7 N" z  S. `) K% v6 q, k; [; J/ o
t1 = 0.0033;%孔隙率
* C0 E9 t& f, ia =@( x ) L( x )./c( t1 );%a为brinkman数: U3 ?/ Q. g2 x2 o
b = H./c( t1 );
4 u, v( k3 R. j! s5 z; d; [% % % % 计算方程中的f,控制此处f不与x一起变化
  k8 s$ R8 k& l  R' Df = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );
4 Z  W% H& s8 g' v$ Y0 B. d) R# S% % % % 计算方程中常数余项C,此处x只与a有关% T8 A! P; h+ Y6 n8 _# k/ h# R
o = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );% b* |* Y4 ~( r) U; f6 ~# ?
p = @( x )( a( x ).^2./( 2.*f-H ) );/ ~8 E  j9 B) Y2 J' u( B( G
O = int( o( x ), 0, 1 );2 ]+ ]0 U( O8 O
P = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-2 12:50 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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