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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2430|回復(fù): 0

請教MATLAB編程?

[復(fù)制鏈接]
1#
發(fā)表于 2015-11-21 23:09:14 | 只看該作者 |倒序瀏覽 |閱讀模式
優(yōu)化設(shè)計老師布置用MATLAB對變尺度法進行MATLAB編程(也叫擬牛頓法),我是用擬牛頓法中的BFD法進行編程,程序如下:(問題在程序后面)% f* U  |4 G" U, j2 S% ~, ^. a
function [r,n]=mulDFP(F,x0,B,eps)
3 V! x. w8 i) l2 q3 N%用擬牛頓法中的DFP法中求極小點和極小值。: j. P# c, D6 m( v- E
%Designed by GAO,Mechanical Engineering College5 ~! F# T; f; V( a  ~7 @
%Shenyang University of Technology6 l$ o0 P3 i3 f& @9 s
%November,2015' s& Z! c. q& w! n6 k1 k1 o
%調(diào)用格式:
' M% o1 \  ~4 Y& a) |; N%syms x1 x2;
& E1 z* G+ K0 S: f* ?" p%z=表達式;+ F% T) n" s# k2 V* E
%zx1=simple(diff(z,x1)),zx2=diff(z,x2)6 N. U  O5 i  A1 c, I$ M; N  I
%X0=[給定初始值];
' g& |8 e% H3 I: i5 G/ P%f=[zx1;zx2];% |# b" f: h. w3 h7 Y& a* X
%[n,r]=mulDFP(f,x0)
2 G# u. t* a# Pif nargin==2& c  L! x' u5 s6 z' N# R* }8 x- q
l = length(x0);
. K7 r& O2 k2 ?. JB=eye(l); %A取為單位陣/ I4 }- p/ |9 H+ i. ]9 s% L
eps=1.0e-4;
8 [/ j4 ], i" n% L% Kelse  f; F3 N( D- I$ J! X3 u3 v4 }
if nargin==33 Y" A: D9 D0 v  T" S
eps=1.0e-4;
2 j1 e- j  k1 S$ c4 gend
: K9 i3 T) V; m, @) ~end
0 h- m8 h1 f/ {1 mfx = subs(F,findsym(F),x0);. j. M$ J7 [3 n( T/ W- m
r=transpose(x0)-B*fx;
5 \  b0 O3 J# }# O9 Q) [n=1;$ a* i' \7 T$ M4 P0 i7 q
tol=1;
$ Q& J6 `; Y7 [0 s6 zwhile tol>eps
/ T" T; I2 m- \" N1 Y( Px0=r;
9 b. ]8 x8 m7 [% R. R3 nfx = subs(F,findsym(F),x0);) y2 r+ ^8 @) X# K; l8 C8 e" J
r=x0-B*fx;" |; f. Q/ N( ?, L9 k) g; q
y=r-x0;) R* N8 ?+ i6 p- z$ L1 L
fr = subs(F,findsym(F),r);- F. r( h8 ]2 X9 C& x* D. d* ~
z = fr-fx;( A4 A! D$ i5 ^( L5 q' r+ b( K: u
B1=B+ y*y'/(y'*z)-B*z*z'*B/(z'*B*z); %調(diào)整A( v1 e; H: F* q$ U3 Q& L6 d/ b9 H( p
B=B1;
8 [) W2 ]& p* p# T2 Vn=n+1;: N" K/ X* |0 P2 B6 k
if(n>100000) %迭代步數(shù)控制: H2 v& I! ^3 ~) _$ p
disp('迭代步數(shù)太多,可能不收斂!');2 l0 X# U% ~. s9 y/ Z
return;
! j8 U7 q. K8 _) H  a9 k( iend& S* y  r/ r3 ^+ ]* d7 t
tol=norm(r-x0);3 ?9 a: j; ^5 n9 G% D  F; b* ]
end* l) {2 R3 ^! [! }# F
問題:這個程序我是通過其他方法改變來的,現(xiàn)在想在這個基礎(chǔ)上增加一個求偏導(dǎo)的一個函數(shù)類似于“df=jacobian(f,[x1 x2]);%函數(shù)f的偏導(dǎo)”,可是加進去以后就會出現(xiàn)錯誤,改正好多次,都不行,后來實在不行我就加在了調(diào)用函數(shù)中,可是這么做,運行效率太低,唯恐老師會減分,所以希望各位前輩能給予實質(zhì)性的指點,謝謝!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

GMT+8, 2025-7-30 05:39 , Processed in 0.061120 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復(fù) 返回頂部 返回列表