- 在线时间
- 3 小时
- 最后登录
- 2017-9-30
- 注册时间
- 2017-9-27
- 听众数
- 4
- 收听数
- 1
- 能力
- 0 分
- 体力
- 6 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 3
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   60% 该用户从未签到 - 自我介绍
- Mathematica初学者
 |
萌新求助如何求解一个非线性方程组:+ U; n9 `/ R) Z2 m7 a9 d; `7 b1 t
" e0 Y4 x1 R6 b* E- N& N& m; F9 ~* H
求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:& g' g( l$ K: V: y
, L; }5 }3 I' h: uNDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
; y5 R* Z K* }9 e5 U omega,, @) ^* O1 N; O. ^! g5 T4 _# P
segma'[t] ==
' q& k; ?, s0 Z: F% ?' U f shear*str -
3 V2 ~. a g8 f4 u0 U2 V 1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0,
" y$ l+ G+ j* L 10}]
y0 |3 y$ p' i以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:
/ A9 Y1 Q8 L/ L- E( f# I" ~
" ]3 y# V1 z$ t* M& A+ b5 k- `f[EIS_] :=
8 e* Q# M1 c* d4 t8 o, | Re[Coef /.
. B# m9 V _. [" }6 d ~$ Y3 u- `9 h FindRoot[- {6 b; q& ^+ ^- R
Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];' x' \/ m3 x/ @% A
也就是f[EIS]每一点的值都需要解一个上述的方程。
+ X) f6 K5 ^$ F) `1 T6 s7 V' V' n, \
9 n$ Q- @2 r+ @9 ~6 L0 [
9 v( f3 N/ Y1 f- Y' h6 h; E' V9 M& i* L/ n5 t# f
程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。
) i: G0 t% j5 f+ I( d E' h u' ^, S' J3 u! i z8 C- V
: n" L: o" L/ Y# q. U9 d' C% w" x% I& n2 m# S
十分感谢大神帮助, c, [* X+ h3 Y$ X, M; e
. v6 W6 q& y' J
2 S$ L% i- O6 R) \9 t$ w |
zan
|