久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

機械社區

標題: 請教MATLAB編程? [打印本頁]

作者: 展翅翱翔with    時間: 2015-11-21 23:09
標題: 請教MATLAB編程?
優化設計老師布置用MATLAB對變尺度法進行MATLAB編程(也叫擬牛頓法),我是用擬牛頓法中的BFD法進行編程,程序如下:(問題在程序后面)
4 l: R' P) v: R+ h. A# zfunction [r,n]=mulDFP(F,x0,B,eps)
2 _  [7 a  c$ S+ `1 Z9 |9 l%用擬牛頓法中的DFP法中求極小點和極小值。0 F& [% N5 L; |* _9 o7 d
%Designed by GAO,Mechanical Engineering College
) l( M( d3 Y1 K+ u- g* ^%Shenyang University of Technology- w/ x+ ^7 [- \! p) m% X
%November,2015) Z; c! Q1 P- X  m9 P
%調用格式:
: x: R4 D/ n* R: k3 O* }- |%syms x1 x2;) B! i: A3 T0 G1 o: B
%z=表達式;/ v+ F5 Y9 p+ x' A
%zx1=simple(diff(z,x1)),zx2=diff(z,x2)
8 }, Q4 \# M! R- v! h%X0=[給定初始值];0 i% g2 N0 Q) _% r* K7 ?) z
%f=[zx1;zx2];
) \/ Y8 |2 \9 m/ n) t% p' y5 I/ v%[n,r]=mulDFP(f,x0)0 Q4 T" ^9 |* Y& ]0 p4 }! \
if nargin==2" j$ g; R: h' A& n
l = length(x0);2 e- h2 `: T1 ]& g( i  h
B=eye(l); %A取為單位陣
, w  A6 F# m) n& g6 G6 D0 M" ieps=1.0e-4;
: |) {& \, }$ G" U5 ~) melse7 D, }5 e/ H( d( i
if nargin==3
1 }) I( q, _3 R' n0 {7 u3 x3 x: N  teps=1.0e-4;
1 i. R4 {, s2 K( o. L! A7 Tend  i9 \6 \0 H' y' X8 B* L" x
end
$ \6 O# o# {" w. x; Tfx = subs(F,findsym(F),x0);
' U0 N% N3 |( i, m1 j( er=transpose(x0)-B*fx;
( M" M/ d& X+ o' F- E$ An=1;
5 R8 D- ]+ f0 ftol=1;
# E& [- p" ~, a. ywhile tol>eps. k4 `$ J  q- A1 g4 C; l9 x
x0=r;# Y1 ^9 p( i% K3 N" @. y9 A
fx = subs(F,findsym(F),x0);% [+ V$ Q0 U9 _3 h
r=x0-B*fx;
# K6 t* i/ A' W: ~4 h: ky=r-x0;
! l9 O5 H; e" ~  }' L  h* `5 xfr = subs(F,findsym(F),r);( P2 K6 {! u2 U* e( D: v
z = fr-fx;
1 F6 e& a' Q5 U7 r: vB1=B+ y*y'/(y'*z)-B*z*z'*B/(z'*B*z); %調整A, R  N" I0 ]5 D4 T" S) a- m! c5 s
B=B1;
# L) I7 U: C3 t8 n/ h6 Wn=n+1;
0 V3 A2 F- w, s- H9 Uif(n>100000) %迭代步數控制
) j* i3 ]! @/ S! Q( g% bdisp('迭代步數太多,可能不收斂!');
' S" |: g  M$ U, N( jreturn;0 r1 v+ H: s) r
end
/ Z( @+ U6 m" }8 J4 ztol=norm(r-x0);
& L" x; k$ A  X4 k; Qend- Q2 B8 L( D4 ]0 x' c7 \+ q
問題:這個程序我是通過其他方法改變來的,現在想在這個基礎上增加一個求偏導的一個函數類似于“df=jacobian(f,[x1 x2]);%函數f的偏導”,可是加進去以后就會出現錯誤,改正好多次,都不行,后來實在不行我就加在了調用函數中,可是這么做,運行效率太低,唯恐老師會減分,所以希望各位前輩能給予實質性的指點,謝謝!




歡迎光臨 機械社區 (http://www.ytsybjq.com/) Powered by Discuz! X3.5