- 在线时间
- 3 小时
- 最后登录
- 2017-9-30
- 注册时间
- 2017-9-27
- 听众数
- 4
- 收听数
- 1
- 能力
- 0 分
- 体力
- 6 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 3
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 4
升级   60% 该用户从未签到 - 自我介绍
- Mathematica初学者
 |
萌新求助如何求解一个非线性方程组:
! S& q' M7 h3 R1 W" t9 @8 g# @) l
求助大神,我要解的非线性方程组不是规范的,无法直接套用NDSolve,也没有在Help中查到处理方法。原因是微分方程组中有一项表达式需要再解一个方程才能得到,具体的:: f& n H' G" v7 {0 L
& P$ p, a% M: {4 ?, O
NDSolve[{ EIS'[t] == (segma[t] + f[EIS[t]]/(str*omega))*str*
/ {2 S# `5 ]$ Z, s. {4 f0 H8 G* ^0 n omega,
. ~3 a; i7 v% K3 \ m# h3 p; L [1 N segma'[t] == * W4 V9 b9 a; G8 [4 J/ T' [/ L
shear*str - % J" q' z# ^. T! P$ A- I5 q% i
1/(str*omega)*Df[EIS[t]]*EIS'[t],EIS[0] == -4.842, segma[0] == 0,}, {EIS, segma}, {t, 0,
+ \3 L# X& O/ _& f( ^& p$ X 10}]
7 h" G4 r1 P0 S, p, l以上是我想要求解的微分方程,形式很简单。其中各个函数除了f[EIS]以外均有直接的表达式。而f[EIS]需要由以下表达式得到:) h' F0 w3 F N8 B. S) x# l
/ [& {8 I, W* ^$ W$ P) H, H2 q
f[EIS_] := - [6 X' B. ]" v$ ~0 h
Re[Coef /. " q3 }0 @2 b* Z o
FindRoot[
! o8 U6 Y4 L" `6 ~ f Integrate[P[EA, EIS, Coef], {EA, 0, Infinity}] == 1, {Coef, 1}]];! ~- g7 u7 z3 W% U
也就是f[EIS]每一点的值都需要解一个上述的方程。
, @* t) k5 g# n; B& A3 [- r, q( ~5 p2 j! `
6 p8 I2 U8 F# k; v+ h/ n+ y5 p
1 m |# @8 K* ~( q8 _/ N; w# p5 \6 N: n程序报错是求解f[EIS]时得不到数值无法进行。请问这样的情况应该怎么处理呢?我也尝试了将f[EIS]也作为一个方程放入NDSolve中求解微分代数方程,但是也无法得到结果。3 K1 [( t0 a5 o9 Q4 f# P: f
% e* M+ m. X) W0 {! a0 n! j
$ @$ b" A- g6 G2 x& Q
% C" \$ D$ E3 G3 ~7 t* j8 p5 _: \十分感谢大神帮助3 N* F7 u) J% I0 a4 y7 F) E
$ l. P" T% M' o3 G
# g# T+ d% w2 b* S( C |
zan
|