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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解. M+ e  ^/ R8 _/ r3 _8 \
clear;4 u* m) H$ z/ q) x" c& i
close all
# ?6 h" q3 b4 [! N& g7 G- ]syms a b c d e x L O P U t o p  V9 v& p0 @5 ~  m" z8 X$ v
K=5;%常量3 d  m; P+ }3 g. w
h=2;%常量 多孔储液介质厚度
+ x  p; [3 t7 J7 b, XD=0.012;%半径
" G8 d( o6 N/ l- u. D) O) V) A) DH=0.2;%压缩后的高度
: S; `5 ^! N! Q4 E. @3 DL=@(x)0.2.*x;
' }5 _( Z& K- I5 r6 ^% G) M. O% % % % 计算与孔隙率相关的brinkman数
; U- ]/ Y" N- D7 T/ \+ [" ~- X2 Jc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
5 v1 N4 Z1 t- p6 Qt1=0.0033;%孔隙率
1 d/ I/ F- }5 w$ sa=L./c(t1);%a为brinkman数
" c% K3 N5 }) k* ?' db=H./c(t1);& @5 o% u( r  u* E5 k1 f5 ~
% % % % 计算方程中的f,控制此处f不与x一起变化
7 i$ J" d+ \3 W2 f$ Pf=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));
( {/ w: X. v3 ?$ ~* G% U) A9 f  W% % % % 计算方程中常数余项C,此处x只与a有关. `. y# P' R7 D; N! K
o=@(x)(a(x).^2.*(H-f)./(2.*f-H));( W4 G- e7 w: @, S7 r2 i( e3 V
p=@(x)(a(x).^2./(2.*f-H));8 }. U. @. s6 u8 R# k& q
O=int(o(x),0,1);
3 N2 B5 U+ W/ d: W/ G' `& zP=int(p,0,1);2 d  ^* m2 d1 v/ H% o" ]; f+ s
c=O./P;
/ X4 {. m+ A2 V2 A- I: G0 u%%%%计算润滑升力$ k1 q" k; p5 z! K, a  C8 {; {- a
d=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);4 g2 e. ?0 ^! v7 m
U=int(d,0,1);
5 x, S5 S, E( Q3 a# e我的代码一直在报错,请求高手帮忙看看哪里出了问题。
/ C& g5 E, ~- x3 i* I0 E% k( g错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。
4 W  }5 k; r, @9 f5 O. g! d% W9 D; p/ m- j3 f( t
出错 runhuashengli (line 13)
, i; E8 @0 ?9 G5 m' O( d  va=L./c(t1);%a为brinkman数
0 k' t; I* }/ g( k! y

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则
# K, g* d3 _( v* H2 Z5 F

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。- B; a" L2 T. [) \8 {9 d, L. z, F  h0 i

" i7 `1 J. i6 n7 G相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。: R0 ~2 p' |9 Z" ~  x

) b8 d% E# ?, o) l3 k2 Q# P( _再者,避免变量与函数重复命名,你既写了匿名函数3 @+ F0 F$ w6 I' I0 Y" O
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解
" H4 B$ F- S+ L! J# k1 I2 a: o. y后面却又写了/ J2 O3 L! H6 ~1 m
c=O./P; %这算出来要么是个数值要么是个符号表达式8 v9 U, M) a- }3 E, ~4 y2 t

" \6 l5 A* [2 z2 x* x2 y' G) U可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的  K# d9 g/ x* `% n% H: g* ?
d = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );
& P: ?' b6 ?+ ]) [会出错2 U# c, h$ x8 c; u5 Q* g: q

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x
& y) `" S6 I/ ?! B$ [5 E/ ~' pK = 5;%常量
- P6 B% n( s: E# ]2 v* {0 Bh = 2;%常量 多孔储液介质厚度" w0 O' |# {! z2 `( C( @
D = 0.012;%半径2 r! \3 n, @; C% l
H = 0.2;%压缩后的高度
# a5 r# S' O) P7 _. D# S1 j; WL = @( x ) 0.2.*x;: c2 y) V( y  Z
% % % % 计算与孔隙率相关的brinkman数
& h! g4 Y$ d4 d$ L8 wc = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解
. C9 Z! k4 u# X8 Q; q' H7 Jt1 = 0.0033;%孔隙率$ ^- X) P, d' K- }, U7 p1 i
a =@( x ) L( x )./c( t1 );%a为brinkman数
1 N5 `0 e+ ~$ D1 N' y" \% Pb = H./c( t1 );; \$ ?. \) f3 m; j. v* k
% % % % 计算方程中的f,控制此处f不与x一起变化1 B  W1 o$ j* r* Z% v
f = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );
; u# r% G: j' w% % % % 计算方程中常数余项C,此处x只与a有关
* a! \  `1 T3 Ao = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );
0 D/ m" y1 V; ~4 \% }6 h4 gp = @( x )( a( x ).^2./( 2.*f-H ) );1 j( V- i2 n9 ], i/ \
O = int( o( x ), 0, 1 );+ `9 q6 X; k. i: R* D7 c) J: I
P = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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