- 在线时间
- 3 小时
- 最后登录
- 2017-9-30
- 注册时间
- 2017-9-27
- 听众数
- 4
- 收听数
- 1
- 能力
- 0 分
- 体力
- 6 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 3
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   60% 该用户从未签到 - 自我介绍
- Mathematica初学者
 |
萌新求助如何求解一个非线性方程组:( C- o# `4 b7 r B
p* s+ F8 Y% M( ~; J3 {) m: B求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:7 v( q- O9 J& B
: O/ {! H5 v; K8 N( n7 ]; i
NDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
6 N3 w7 q% o* I* E2 D8 ^ omega,* }4 y. @5 z R* ~$ i) T
segma'[t] == 3 Z* @: k1 _ @* [
shear*str -
% V& I6 ^8 f3 J4 l2 f 1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0, 1 F! s3 T) @; I. m" `* n" R% r$ W
10}]
1 Q( U. ?; y2 K! p$ ~- u% o: V+ X以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:
5 ~& L+ M5 X: n9 x! c! e) n' C" {' [4 @- C4 G. c6 Z6 x
f[EIS_] :=
8 A0 O3 a' O! f& Z, ^/ p Re[Coef /. ' I! e$ ?6 r2 |9 o% H3 j1 R/ N
FindRoot[
6 ~6 W7 S; z5 L Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];; w$ ]3 U/ I4 u' Q; }7 a# O
也就是f[EIS]每一点的值都需要解一个上述的方程。7 P% Z u7 [8 K- R' [/ j6 B) i
. O7 T# U1 M) ?, Q6 \2 m+ k5 ?- R! O. ], _" y
0 M$ ?( g% A* l& p- a7 f# U* n) b程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。4 {; H" S9 C! T
- f- F4 V4 I. R4 Q! v
6 i0 _. s: o- v( S# Q) R
" y1 A: J. q7 T: p2 K& O/ H1 R W, @十分感谢大神帮助
& ^) F4 W5 D5 a/ Z, [; Z8 g& v& o$ u x- e- q; [
_1 ?0 o8 M1 X, V; K' \$ f
|
zan
|