- 在线时间
- 3 小时
- 最后登录
- 2017-9-30
- 注册时间
- 2017-9-27
- 听众数
- 4
- 收听数
- 1
- 能力
- 0 分
- 体力
- 6 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 3
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   60% 该用户从未签到 - 自我介绍
- Mathematica初学者
 |
萌新求助如何求解一个非线性方程组:
6 q6 M# n+ g2 G- v7 ?
$ S- @1 M$ `+ `( J6 t0 f `求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:
0 y; z' U+ K! V" D
4 T. c4 o+ V' J1 k( [NDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
5 Z1 |: T# y8 E omega,: n4 t# a6 r! u; ]
segma'[t] == 2 m3 z( `* e% |4 l& ]
shear*str - ' Y# G) R& m" G6 q
1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0,
3 o& }" n' p8 q" @" R 10}] w; K0 N+ T6 M# |1 Q
以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:
6 R6 W" s. s; ]. @& w/ S/ ^6 }
/ e1 C( N; ^7 o) m) X3 l" ~6 b9 uf[EIS_] :=
9 a9 A+ x' W4 x/ s; E" F Re[Coef /.
7 i- K4 l6 {2 v& R' ^ FindRoot[
! U: V7 H$ `, l1 p8 j Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];
: r/ p1 P! X& g$ @) ^( Z也就是f[EIS]每一点的值都需要解一个上述的方程。# |3 N( B3 z, b9 j) F' \. B
2 K* Y; b; H6 ^9 W" l2 e
7 I0 i4 ?( C0 }: V$ t5 {4 O- h# I, I
程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。/ h& j/ L) w5 {) R( m! f0 f* }
7 j c( O ]" ^ l7 c: |, m7 x) V. [ ~ Z1 v n+ K
6 F/ w1 R1 |. K( f% L2 W' R十分感谢大神帮助
: {) ]' Q- V( A! o4 f; o0 @- Z X4 T( s/ d, q& t) c
8 k, v) W# T E' ^& o+ F" R# U* w
|
zan
|