|
参考如下代码片段,全局搜索一组方程的解:
/ V0 q U* j6 \; [3 N1 Ay(x)=a*exp(-c*(x-b)^2)+d;
4 U# ]8 a q3 m3 Y% n6 t6 \yp(a,b,c,d,x)=y(x);3 Y9 K4 g6 B c+ D! e& b" Z
dy(x)=diff(y,x); dyp(a,b,c,d,x)=dy(x);+ m+ E! A- n* B( c1 S6 O- M7 l
func1(a,b,c,d)=y(p1(1))-p1(2);
* \) ~: a6 B% D. ]% R# c8 ^func2(a,b,c,d)=y(p2(1))-p2(2);
- h# v. V, P; F5 `3 e! vfunc3(a,b,c,d)=dy(p1(1))-k1;( C9 | S3 b8 `/ p# ?0 J& z
func4(a,b,c,d)=dy(p2(1))-k2;
) F1 `# B3 R2 v5 h' M: e$ }funcs=[func1(a,b,c,d);func2(a,b,c,d);func3(a,b,c,d);func4(a,b,c,d)];4 ?, i- m3 p# P; Z3 \' l2 m4 T
vs=[a,b,c,d];
1 A1 E2 P, L$ I" a2 cvs0=[h,L,1.5*L/2,h];) H- D$ q! h( q2 F0 B* P# l
funcHd=matlabFunction(funcs,'vars',{[a,b,c,d]});0 t4 z" e+ H6 o9 _! n3 s6 A
n=4;m=20;
( M! f# N+ y( ~[vss,fval,exitFlag] = GlobalSolve(funcHd,n); |
|