- 在线时间
- 3 小时
- 最后登录
- 2017-9-30
- 注册时间
- 2017-9-27
- 听众数
- 4
- 收听数
- 1
- 能力
- 0 分
- 体力
- 6 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 3
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   60% 该用户从未签到
- 自我介绍
- Mathematica初学者
 |
萌新求助如何求解一个非线性方程组:
: l1 {/ w0 ^4 P8 r8 X, Q H1 q2 W7 s; b0 g/ x/ |
求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:6 c& p8 ]! p7 P* O* v
" S" ^& r* ]. B' x, yNDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
% R- w" f0 H& Y- S3 D& r omega,
* u: g. a( b) k; |5 d9 }" G7 ?) o segma'[t] ==
/ i! \+ ]( o! v. c5 A; V/ L+ w2 { shear*str - 7 [( e; B5 ^6 r4 _8 |3 D* a
1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0, 4 r8 v" G* n: \
10}]& U* ]: q& o9 q" Z8 U$ a
以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:
2 _6 k% L$ B" N* m/ N* ^: O7 s9 F0 S: w1 ]
f[EIS_] :=
& n: {; l. p9 H: p5 T+ G6 n+ k Re[Coef /. 5 r; ?, |( x0 U% [" w' m2 t# H# l
FindRoot[
2 A, R$ f" `" s0 K, H Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];
- |: Q) k, m7 h) H也就是f[EIS]每一点的值都需要解一个上述的方程。- J+ H. a. K7 ~' v8 ?1 y4 X
3 a. e" P* a& h$ e) |
4 S+ Q% j6 P# V' n6 L( s8 B1 E8 s1 L1 `
程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。7 H, h, V$ I3 v! C
( v s- j- K1 D4 U6 L4 Z& x3 ]/ q: Z
/ e2 g+ B! L! k5 x- m& B十分感谢大神帮助
O) J4 ]# X6 p4 ?7 \; R8 X2 z; a, M( j
" C: d9 T2 Q2 _" u# _4 ?5 B |
zan
|