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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解
: n' l/ K7 X1 v3 u: \) x) Yclear;% k- \1 j' X! d* z
close all, ]- e( t) w/ K
syms a b c d e x L O P U t o p9 C' }! I  H! Y8 K
K=5;%常量
3 U/ R, e4 M5 m- Gh=2;%常量 多孔储液介质厚度
- ^3 M' B  ~5 g7 f0 Z# G+ C  SD=0.012;%半径
* r2 w) H8 t" U9 ]- I5 V/ QH=0.2;%压缩后的高度( g* u9 I* m, R! f0 o3 _( l
L=@(x)0.2.*x;/ ^- s& F1 n1 e! b- G9 D0 Y
% % % % 计算与孔隙率相关的brinkman数/ l1 `5 v9 r7 A5 c4 R$ h
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
; Q9 O- B* ^0 Gt1=0.0033;%孔隙率
$ {4 O1 J0 G: |" N6 {4 M3 B9 s3 A' L& ha=L./c(t1);%a为brinkman数
5 \% u5 P* @! Y) w# L6 Vb=H./c(t1);4 y1 i: i" ~' `' S' [, Y  F
% % % % 计算方程中的f,控制此处f不与x一起变化) ]+ i/ B% S3 S/ i
f=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));& ^6 ]: B% G2 B( f
% % % % 计算方程中常数余项C,此处x只与a有关0 k+ h: E( H2 q  H
o=@(x)(a(x).^2.*(H-f)./(2.*f-H));
; ?# F8 M+ t$ o  Pp=@(x)(a(x).^2./(2.*f-H));2 _* w) ]7 T& H: V7 k% t7 m
O=int(o(x),0,1);& z5 N- ~& ~) b% k
P=int(p,0,1);8 R  z3 F9 u: O! Z
c=O./P;
: K+ K" n5 u0 d4 B& p%%%%计算润滑升力
; T# l9 U; O% G% h3 z" |1 g. Zd=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);# P* A9 G# v( T5 G2 R, \
U=int(d,0,1);
1 J8 L8 S: a+ n+ Q) T5 B8 P$ K( v我的代码一直在报错,请求高手帮忙看看哪里出了问题。% W2 g; c3 U5 \8 q) ]
错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。$ W8 l; L7 D5 H  Q# E% [6 q

  S+ \0 m% Q* B% c: @8 Z出错 runhuashengli (line 13), q7 v- N6 R. {/ Y2 L* J
a=L./c(t1);%a为brinkman数$ F% U$ |/ F9 y6 q  c5 J. b$ T* z, t

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则4 R$ {) k3 P1 K

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。
9 Y" ?# M# g6 P
# q& S' `& U# q# z2 n8 p相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。: z( q! W- V7 \1 K. r  F: t/ C, W) @4 F
/ T! r) i  D- v% W/ z% M+ Q
再者,避免变量与函数重复命名,你既写了匿名函数3 @7 k5 s! W) z$ \/ ?# g
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
- q- S% s. z% D) d后面却又写了8 P6 T: [  w' h0 L- w4 M
c=O./P; %这算出来要么是个数值要么是个符号表达式/ A2 Q/ n# p5 Q' t6 d7 q2 q9 J' j2 {

+ l/ M* d% V0 }, b5 q0 j! K3 S可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的
" N' K6 {+ v1 j) n" r" L: M# Zd = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );6 c" B8 o9 V& t. B$ a
会出错
* n( ^* D+ x: Q

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x
, u3 S1 I& h5 H$ u0 ~% B9 pK = 5;%常量# \, x; k& G( }/ p# b% ]% D
h = 2;%常量 多孔储液介质厚度
" N: n0 j# P: l! F8 o4 pD = 0.012;%半径1 y, ^% P9 c5 b" ^9 v" ?7 q
H = 0.2;%压缩后的高度
- u9 ~* u% Z8 L- ]5 ^; cL = @( x ) 0.2.*x;
1 D. g- X+ g. [2 I) H% % % % 计算与孔隙率相关的brinkman数
% e8 D" x" D9 p9 _c = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解! U! o, Z2 z4 j& W5 w: x
t1 = 0.0033;%孔隙率& I5 r7 O9 _% J2 }8 {" w) ]
a =@( x ) L( x )./c( t1 );%a为brinkman数3 r' n5 R6 |) C! r7 z
b = H./c( t1 );" b+ y) a6 {, B2 \) l
% % % % 计算方程中的f,控制此处f不与x一起变化2 l/ F0 n* ]* k' I, t+ I
f = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );
% n1 t2 `; J: [* w; T; J2 l* g( [6 }% % % % 计算方程中常数余项C,此处x只与a有关
) S1 y1 ~: v. l) go = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );2 ?& u. h; {" }, N0 z% N: _1 J
p = @( x )( a( x ).^2./( 2.*f-H ) );3 X. P5 v# g, O: V5 I( M
O = int( o( x ), 0, 1 );
( M% v0 D8 @7 j% b# nP = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 09:43 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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