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

求解多元积分

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
clc;%总润滑方程求解
. p1 O4 ?: D; p) Oclear;
2 F: h/ k, H4 t) k' ?$ ~close all$ \4 ~8 i$ G  s. A9 Q6 n! g* D
syms a b c d e x L O P U t o p
0 q9 C1 z9 k# g- z& z# n5 uK=5;%常量- M3 H( w: G; l, D5 @
h=2;%常量 多孔储液介质厚度
/ M. X4 q& ~( s4 k& {. q$ @D=0.012;%半径( ^7 m1 |) u# H
H=0.2;%压缩后的高度. Y" c3 a8 w; I
L=@(x)0.2.*x;) {' H0 V3 `+ h! T$ G
% % % % 计算与孔隙率相关的brinkman数& P/ g3 y  j- Y9 K2 M0 ?
c=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解$ u( v$ A7 S* n" Y! T4 }
t1=0.0033;%孔隙率* o1 W9 \. s% K  {7 t/ o8 k
a=L./c(t1);%a为brinkman数
4 \7 a7 {( n( V; w9 gb=H./c(t1);1 R: x* h2 B. D: t
% % % % 计算方程中的f,控制此处f不与x一起变化
/ S; K% U* E% H. j) {; O# ^$ B. b& {f=(cos(h.*b.*H)-1)/(b.*sin(h.*b.*H));
. x9 @3 ^, y8 `1 |/ ]- Q% % % % 计算方程中常数余项C,此处x只与a有关( d5 ]" D) D3 l/ b6 t; e% l
o=@(x)(a(x).^2.*(H-f)./(2.*f-H));2 [" V% k+ Q" V0 K
p=@(x)(a(x).^2./(2.*f-H));
: m8 p! W; ]$ K7 P* Y4 r/ nO=int(o(x),0,1);' i3 c% D1 F- q5 s
P=int(p,0,1);
9 Y" x- I& K; \/ }1 F4 hc=O./P;8 [) X5 H4 ?" C- A
%%%%计算润滑升力
" I) e  r" Z) }! Hd=@(x)(1-x).*L./c(t1).^2.*(H-f+c)./(2.*f-H);
( v1 k: w+ }' p  X# k, j8 }U=int(d,0,1);
/ ]' q$ g4 U4 @. B& B0 a我的代码一直在报错,请求高手帮忙看看哪里出了问题。6 T; a( e2 \$ f. w" p' f# `. r4 F
错误提示:未定义与 'function_handle' 类型的输入参数相对应的函数 'rdivide'。
" T$ n* l4 R# b" z3 \7 X, ~: V2 }; S( }2 m. f
出错 runhuashengli (line 13)
" A. L- B6 W- }; H& `! d. ya=L./c(t1);%a为brinkman数
% X% T: w8 f; H2 H3 }0 _% B" ^

该用户从未签到

2#
发表于 2020-12-9 11:29 | 只看该作者
错的地方太多,你需要先搞清楚MATLAB匿名函数的定义方法和调用的语法规则
" U% ~9 j! Z0 F0 z5 u

该用户从未签到

3#
发表于 2020-12-9 13:23 | 只看该作者
前面既然使用了匿名函数 L=@(x)0.2.*x; 那么后面除非是使用函数句柄时可以只写L,当你需要使用含有某个自变量的式子的时候,就需要写成 L(x)。
; Z' A0 `2 O/ c; m, L
. \3 C; A/ y" ^" D相应地,a的赋值右侧包含L函数,所以a也需要写成函数形式,否则后面对o和p的计算,你写的这个a(x)就没法算了。
/ s0 q2 X6 V! L  h9 ^4 B1 `6 a8 @, g2 G- H' e
再者,避免变量与函数重复命名,你既写了匿名函数
. {$ s9 i9 {( D3 c: e) Oc=@(t)((t.^3.*D.^2)./(36.*(1-t).^2.*K)).^2;%渗透率求解( V6 e* u4 W6 R0 R" J
后面却又写了
# Y# }3 Z0 M- Z* A1 \, Vc=O./P; %这算出来要么是个数值要么是个符号表达式
/ h# ?" @) w/ w' V" M
9 w& {* Y0 I5 ^% y可是MATLAB系统里面只能有一个被命名为c的量,它不能同时表示这两者,这直接导致你最后对d的算式中同时出现的8 {  ~9 |& Y' {. w. V/ b9 b: S9 y
d = @( x )( 1 - x ) .* L( x ) ./ c( t1 ).^2 .* ( H - f + c )./( 2 .* f - H );5 Y/ N3 S  Z# v" k9 l+ V% `
会出错+ M3 E! c/ d4 F0 P2 U3 N6 V$ ]

该用户从未签到

4#
发表于 2020-12-9 13:23 | 只看该作者
syms x
* e+ A% i( Q* g6 L  Z4 B9 rK = 5;%常量
& L; z# D& o/ ~! {6 yh = 2;%常量 多孔储液介质厚度$ `+ F6 H3 T! N- B5 m+ X1 J6 d0 r
D = 0.012;%半径
4 A- C) Q2 ^/ U. uH = 0.2;%压缩后的高度  Y; m+ ?6 {# r6 e' V' x  `  m6 f
L = @( x ) 0.2.*x;1 @( o* u0 T9 F
% % % % 计算与孔隙率相关的brinkman数
' a/ P" y0 m1 T8 N( D7 @c = @( t )( ( t.^3.*D.^2 )./( 36.*( 1-t ).^2.*K ) ).^2;%渗透率求解, u- A0 m+ V' E% b, |! R
t1 = 0.0033;%孔隙率
+ l7 V9 t7 Q  I3 z- ia =@( x ) L( x )./c( t1 );%a为brinkman数# G, ?1 ~0 a) ?  ^. n
b = H./c( t1 );
6 b, ^1 z( |) l% % % % 计算方程中的f,控制此处f不与x一起变化
2 {8 F" f, R0 X5 Df = ( cos( h.*b.*H )-1 )/( b.*sin( h.*b.*H ) );
5 `  W1 a: o/ K0 ~; t% % % % 计算方程中常数余项C,此处x只与a有关
: q7 z5 x2 c2 f9 W, To = @( x )( a( x ).^2.*( H-f )./( 2.*f-H ) );2 v7 \- y/ \' g7 x0 O: h' p
p = @( x )( a( x ).^2./( 2.*f-H ) );
0 Z  y$ T5 h2 q4 T4 w& QO = int( o( x ), 0, 1 );
- f* ]; w4 G. oP = int( p( x ), 0, 1 );
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-2 16:29 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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