EDA365电子论坛网

标题: 关于ode15i的一阶导数值求解函数decic函数不能收敛的问题 [打印本页]

作者: flamesmnm    时间: 2021-6-8 14:53
标题: 关于ode15i的一阶导数值求解函数decic函数不能收敛的问题
最近看关于求解隐式微分方程的求解的内容,遇到了这样的问题,对于求解问题

; D( @& A! \, u4 q! ^2 j. l& b1 N( z
' x' m& X+ X0 u0 O/ Z
x0= [1;0;0;1]+ v: e& Z* W4 A0 @* C# u
使用ode15i进行求解,具体的命令如下:
- a. V, u$ W* ?( O, B
0 z( m' w9 E) U# W+ b, w
; G9 f7 R& S+ F) F" N! [$ F7 s
odefun=@(t,x,dx)[dx(1)-x(2)
! @0 t: U+ L  N7 q& i% D- hdx(2)*sin(x(4))+dx(4)^2+2*x(1)*x(3)-x(1)*dx(2)*x(4). L; f6 R' R5 G  ]$ D0 ^3 V
dx(3)-x(4)9 f6 c8 k! Y1 W( f: E* x- d
x(1)*dx(2)*dx(4)+cos(dx(4))-3*x(3)*x(2)];

% V& _+ c  T# H  E$ h+ u, S" \2 P5 z
. \( l5 \' c& U

' O' `+ e; B& r3 Q2 Ft0=0: S( v. k* A5 q2 u: n
x0=[1 0 0 1]';%本题初值 x0 的都给出了. Z% C/ u# x' t! ^
fix_x0=ones(4,1);%本题中 x0 都给出了
$ k* ]; _5 }* p& H4 W
8 G  i- n- l/ z
dx0=[0 0 1 1]';%本题中初值 dx0 一个都没有给出,那么全部任意写9 d. G- {8 n/ l: u4 R
fix_dx0=zeros(4,1);%本题中 dx0 一个没有给出,故全部为 0[x02,dx02]=decic(odefun,t0,x0,fix_x0,dx0,fix_dx0);
" q; l9 V% F+ I  s% L7 |
/ d( [0 n5 W! ^" M: u! w0 [

  X: `" O5 T0 P* u8 e但是执行[x02,dx02]=decic(odefun,t0,x0,fix_x0,dx0,fix_dx0);后总是提示  c/ i8 I& X; ~
Error using decic (line 109)
1 @2 [( y  O/ Z) Q! S+ W4 L6 [$ ?Convergence failure in DECIC.! ]- z) h8 u0 Z5 [
请问出错是为什么呢?

$ z2 W: @; \: d4 M
作者: qq666888qqw    时间: 2021-6-8 15:32
你可以给一个稍微好一些的初值:
$ |0 T! V9 b9 k( [dx0=[0 0 1 -0.5]';%
作者: flamesmnm    时间: 2021-6-8 16:31
qq666888qqw 发表于 2021-6-8 15:32
3 C1 V7 N; L: B( q4 l- d你可以给一个稍微好一些的初值:5 {3 z7 |7 C5 p
dx0=[0 0 1 -0.5]';%
7 V, k" i4 @9 K1 B( k

, q* G$ k( j+ J: b4 y& Q
为什么正好初值就是真正解的时候反而就解不出来呢?

0 o$ I) W) |" {! k! _0 e

4 Q$ y0 R9 n( H% Y, u0 a
  Q% f3 H  E) I+ C

& K" o4 I0 Q6 T+ g# A# k. l
1 P& e5 S0 {6 q# G9 T! ?  e




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2