找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2416|回复: 0

请教MATLAB编程?

[复制链接]
发表于 2015-11-21 23:09:14 | 显示全部楼层 |阅读模式
优化设计老师布置用MATLAB对变尺度法进行MATLAB编程(也叫拟牛顿法),我是用拟牛顿法中的BFD法进行编程,程序如下:(问题在程序后面)4 e6 m9 c8 v+ A1 m
function [r,n]=mulDFP(F,x0,B,eps)
% Q0 j; U( ~4 w- S3 U; i%用拟牛顿法中的DFP法中求极小点和极小值。
. I7 X- L0 h8 ^) K% M, @%Designed by GAO,Mechanical Engineering College  r( u- [9 _0 O3 w! }8 d
%Shenyang University of Technology- g- ]3 `$ _6 T" g
%November,2015  H& z* X1 }. s1 ^
%调用格式:& ?5 ]$ A6 N+ W1 r9 W8 u1 M. R
%syms x1 x2;5 Y2 h+ [; ?# O
%z=表达式;& d5 I% T* p0 H$ I3 y2 A1 |
%zx1=simple(diff(z,x1)),zx2=diff(z,x2)
' X$ l% D) P3 {+ ]$ \0 z: K& m%X0=[给定初始值];/ T! E0 c1 g$ V: T# c
%f=[zx1;zx2];
# F4 k+ f' C7 Q2 e# n( L%[n,r]=mulDFP(f,x0)
' o. T: h! Y; d0 [if nargin==2
. n9 ]' h0 Q  Q/ ~' A3 p/ o2 \4 Ul = length(x0);
$ U4 ~7 K" c2 m- ?' e/ D7 wB=eye(l); %A取为单位阵- R" v- x: h  K6 a
eps=1.0e-4;
1 a' I. S3 c7 W+ Nelse
3 H: S( L2 i2 X+ H' }. ~7 \if nargin==3
! E0 b. v* b' ?+ m$ o, a* ceps=1.0e-4;; ^) \0 t" c: p/ _
end
4 L* c' v) J) D% W/ Q9 Fend
! g  a+ |" s$ t/ b* S  [3 V9 t6 Tfx = subs(F,findsym(F),x0);: P! b) k* c  q; y" m/ `
r=transpose(x0)-B*fx;
  X3 {( ]3 |9 D( \n=1;9 L, X9 Y% `5 ?' S( T9 S) K0 E  v
tol=1;
! h  {1 x8 M) U% o$ owhile tol>eps
5 J# n/ M7 C* lx0=r;
/ Z/ o! C3 Y; V! w/ kfx = subs(F,findsym(F),x0);
& {& J8 |$ |( a+ |" zr=x0-B*fx;
  Q# Y, c8 [  T4 t: d+ Ny=r-x0;
0 l! s8 m9 s# z" |9 d, ^fr = subs(F,findsym(F),r);8 c! B; c# n0 d: J5 P* a5 e. w
z = fr-fx;6 n' V' n$ o* i& K( r; A% n# K
B1=B+ y*y'/(y'*z)-B*z*z'*B/(z'*B*z); %调整A
# V0 _0 I6 f3 b3 R2 O* hB=B1;9 k# ~5 m" f9 v9 ]
n=n+1;
& f+ h! e2 l& B1 Fif(n>100000) %迭代步数控制
5 u# P7 U( ]: Z8 P" A3 W' f2 l1 s) D8 W8 gdisp('迭代步数太多,可能不收敛!');
$ w3 h1 R' K# S- breturn;
* y& q1 n: W/ w* _( Xend
5 r* {4 ?# u5 @, Btol=norm(r-x0);9 ?/ d0 u# G, J8 d+ C5 g* l
end
, a& p% s  I" ]* T, L: x* g/ U问题:这个程序我是通过其他方法改变来的,现在想在这个基础上增加一个求偏导的一个函数类似于“df=jacobian(f,[x1 x2]);%函数f的偏导”,可是加进去以后就会出现错误,改正好多次,都不行,后来实在不行我就加在了调用函数中,可是这么做,运行效率太低,唯恐老师会减分,所以希望各位前辈能给予实质性的指点,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-7-20 22:56 , Processed in 0.061445 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表