- 在线时间
- 3 小时
- 最后登录
- 2017-9-30
- 注册时间
- 2017-9-27
- 听众数
- 4
- 收听数
- 1
- 能力
- 0 分
- 体力
- 6 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 3
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   60% 该用户从未签到 - 自我介绍
- Mathematica初学者
 |
萌新求助如何求解一个非线性方程组:
& `5 L, Q) E; r9 l c
* Q% J& P+ y0 y8 K求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:
; p8 G$ Y/ w7 o0 q0 A5 k! M' Z: V, S! h. Y& j$ R8 W
NDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
& V; `0 v; E( a6 y/ V I omega,
% m8 ~$ ?4 K( N3 X3 O Q( ` segma'[t] ==
2 l, i) E6 ?6 Q, s$ N M2 F/ h! o shear*str -
' {3 r( s( h3 O: U 1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0, $ I3 \+ T& V! `: X V" n: }
10}]. \; y G- U% D
以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:* H8 E7 [& V( ]7 d# U
7 r/ e ?" A2 v/ }0 w* z: h7 J: ~f[EIS_] := 2 W# t; m% t; {1 {4 f( Z
Re[Coef /.
- L' J7 T+ z! |1 p- k* ^2 u FindRoot[
& v) C& z8 f2 S Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];
; t( y1 w& T. T, I也就是f[EIS]每一点的值都需要解一个上述的方程。
# r; G5 d/ }" a+ M! p/ T( [8 I7 E+ Q
4 o! D2 l1 D$ z% k: `
: O- T) R7 n; v, A
程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。. N8 W4 v) J$ Q% y O6 y( L
7 a, F" \8 R) e( X ?) E# _- {
9 G* [0 E4 L4 g* V* }/ i7 J( ?- K$ K+ }
十分感谢大神帮助1 b. X( a6 w; v0 n8 H
. c1 F2 k e$ r, R8 h- |# ?6 G1 d: g1 h% B5 Z, l O) Z% n& U
|
zan
|