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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2429|回復: 0

請教MATLAB編程?

[復制鏈接]
1#
發(fā)表于 2015-11-21 23:09:14 | 只看該作者 |倒序瀏覽 |閱讀模式
優(yōu)化設(shè)計老師布置用MATLAB對變尺度法進行MATLAB編程(也叫擬牛頓法),我是用擬牛頓法中的BFD法進行編程,程序如下:(問題在程序后面)! I% R! S: H2 V0 h& O: a3 T
function [r,n]=mulDFP(F,x0,B,eps)9 z% O& Z# t# S6 m3 S" j
%用擬牛頓法中的DFP法中求極小點和極小值。
! j7 E9 `) G* t& Q1 X( M3 ], Q%Designed by GAO,Mechanical Engineering College
5 E* R5 P/ f5 H" T  X" d%Shenyang University of Technology1 N0 @$ m  k/ l0 y9 ]
%November,2015- X# S2 w: L/ |
%調(diào)用格式:* k# M2 U3 P* W
%syms x1 x2;* c% k2 s9 B. z9 L+ R: ?  o
%z=表達式;
/ }+ ^, \  i1 L7 M5 n' Q%zx1=simple(diff(z,x1)),zx2=diff(z,x2)+ N' X* a+ R5 {  X
%X0=[給定初始值];3 }$ N) @, q7 w9 J( y! r
%f=[zx1;zx2];
5 n9 J; A, k% A%[n,r]=mulDFP(f,x0)
: E" R0 O1 G/ N6 s1 o( Nif nargin==2
; X1 }4 g- z- Q; M& I' i# q4 I# y8 pl = length(x0);! a- l4 w, e1 d
B=eye(l); %A取為單位陣
8 Y8 n$ `6 Y/ O" F9 seps=1.0e-4;# i4 X" G* @# e
else
$ k- C6 n2 o0 i6 o% {( ^if nargin==3
% }) q" U: R) K; @- A4 Neps=1.0e-4;( h" R0 P8 J. h3 e9 E/ S
end! r/ j/ d; d! p  L; w- b; X
end" m! p4 S1 s0 z- @/ e. N
fx = subs(F,findsym(F),x0);; z4 O* Z" ]+ Z1 @
r=transpose(x0)-B*fx;
: D5 Y' Z4 M4 E; {7 J  Q3 [# J8 Pn=1;  o* {3 c. Z" M% l
tol=1;% D: k6 ^, Q( Y& D: N: u( j- o
while tol>eps4 E( r8 ~1 J* f; _# I5 M: }! e
x0=r;( T2 P; z  ~! q+ [( g& B
fx = subs(F,findsym(F),x0);& ^: b, S& v1 s. v% r3 M# J
r=x0-B*fx;6 n5 ?- C) O% [- c( G+ P
y=r-x0;
& _; u5 O0 O& ~  c5 `! Rfr = subs(F,findsym(F),r);
/ B: _% O( j" \$ y  V8 ez = fr-fx;
% R/ W+ H( r# x9 fB1=B+ y*y'/(y'*z)-B*z*z'*B/(z'*B*z); %調(diào)整A' ^9 F% z4 u( O! t4 F; k, d5 k% X
B=B1;
: n3 x3 U% l2 p" a$ `n=n+1;
% q/ N8 H( q# y6 l& jif(n>100000) %迭代步數(shù)控制+ M) p. K! g- H% w4 h" R( u! }
disp('迭代步數(shù)太多,可能不收斂!');
, J. H8 n. J" ~" p+ @. ]return;
' i4 [2 J- Q; E& lend
+ H5 a+ b( \9 M# @tol=norm(r-x0);
7 j, Z3 d! D' I- o9 u& Pend
, @, T# ]8 N; P. Y% x. _* c% h問題:這個程序我是通過其他方法改變來的,現(xiàn)在想在這個基礎(chǔ)上增加一個求偏導的一個函數(shù)類似于“df=jacobian(f,[x1 x2]);%函數(shù)f的偏導”,可是加進去以后就會出現(xiàn)錯誤,改正好多次,都不行,后來實在不行我就加在了調(diào)用函數(shù)中,可是這么做,運行效率太低,唯恐老師會減分,所以希望各位前輩能給予實質(zhì)性的指點,謝謝!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

Archiver|手機版|小黑屋|機械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2025-7-29 18:48 , Processed in 0.075902 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表