- 在线时间
- 3 小时
- 最后登录
- 2017-9-30
- 注册时间
- 2017-9-27
- 听众数
- 4
- 收听数
- 1
- 能力
- 0 分
- 体力
- 6 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 3
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   60% 该用户从未签到
- 自我介绍
- Mathematica初学者
 |
萌新求助如何求解一个非线性方程组:& Y! n, R( p5 d- x
- P; `1 e& P% B. v0 }% ^$ Z f4 y
求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:
& _# K3 z! ^6 r" J8 `- E- K+ f) O
NDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
9 R5 n& I/ ?) p( o: x8 h. h/ Z& l omega,
) g% u: v. w. k* w segma'[t] == $ Z& E5 R# J V4 d0 Q0 d% T
shear*str - ! k' f! {$ ?2 j. {$ L- Z; t, d" N5 j
1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0,
8 M Z+ ?- r4 S) W9 J0 N- b8 M 10}]
. ]* d: } l! b5 @4 D以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:
& C) Z$ q: \8 M: h/ s" I
) @# e! P) a a5 N. ~: cf[EIS_] :=
% }5 `# ^9 x( E$ K Re[Coef /. ( N: ^$ b0 o! I1 o+ [: f9 j2 `
FindRoot[2 x8 W9 M- C2 ?" e8 |, h% {3 v
Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];+ z, l9 m. y. ~0 j4 Q
也就是f[EIS]每一点的值都需要解一个上述的方程。
' s# C+ o6 h( a$ p9 b( M" J+ @) M5 J/ M4 u6 R! D
) T: z/ W. u9 I+ S0 _
, u0 w2 s- @. T5 Q+ n A1 b程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。
( \( P: t8 X& H8 Q8 K1 @7 ?, ?; y" y3 k+ @$ F9 P" W1 }/ G$ r
# {" Z2 K4 H% t) T+ C7 F; x) O/ r% d
& Y, M* T! W% O7 n# [十分感谢大神帮助
1 p3 D8 {+ j: `, u* A- r# Q$ P* D) o" w
{6 p& v$ e4 r o6 y1 G/ Q
|
zan
|