机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2287|回复: 0

请教MATLAB编程?

[复制链接]
发表于 2015-11-21 23:09:14 | 显示全部楼层 |阅读模式
优化设计老师布置用MATLAB对变尺度法进行MATLAB编程(也叫拟牛顿法),我是用拟牛顿法中的BFD法进行编程,程序如下:(问题在程序后面)
1 C5 \' t8 O5 z8 x+ d, sfunction [r,n]=mulDFP(F,x0,B,eps)
' x. `5 x$ |7 L7 ]! J$ M%用拟牛顿法中的DFP法中求极小点和极小值。
. |% Q% w! D6 R) m%Designed by GAO,Mechanical Engineering College
) I3 b( K; O6 Q* [* `%Shenyang University of Technology
) A9 A9 O8 N3 W4 b3 w7 w& C%November,2015
8 Z7 M3 ]/ F, C" h4 f$ ^0 A" ~%调用格式:2 Q' `. b8 Z3 x' S6 X! W" q" ]
%syms x1 x2;
% I3 m5 v, d1 Y# K3 W%z=表达式;
8 {( F5 c, z5 L%zx1=simple(diff(z,x1)),zx2=diff(z,x2)
; T( \4 [1 S4 P9 Z6 I9 y6 S%X0=[给定初始值];
2 @" V! r: c9 i( C; _( R& L* y: \; d  m%f=[zx1;zx2];
- x" K( U4 T) D4 T6 a/ X%[n,r]=mulDFP(f,x0), N5 B# d: |* n6 s% {' {! h
if nargin==2$ A# k2 m/ G! u2 G/ Q
l = length(x0);; G4 A" {* F' z4 L
B=eye(l); %A取为单位阵; S) q. e9 Q" H/ I& x
eps=1.0e-4;
4 c4 i( U2 J7 X. s. V$ X* ielse, D1 H( d( t4 U' f. y3 R
if nargin==3( b) q, L3 \; @+ p
eps=1.0e-4;
. \: h/ m' n0 {+ k& b: eend; [; j9 n) ~, b2 Z0 j6 H
end0 D, |+ s! F$ ~& _, E
fx = subs(F,findsym(F),x0);
# @4 I2 c/ R) l" \+ j/ m& {! o- l# ]r=transpose(x0)-B*fx;8 Y; l% `9 z. W/ ~6 w; x6 N2 `
n=1;8 w0 L7 A" S& G  K( r5 U+ Y9 y
tol=1;9 C9 Y, g! I: r+ E; D7 r. c
while tol>eps3 v, p! b8 C& [# n1 k' r/ R7 Y6 {
x0=r;) r1 F; z+ ~) ^; M* m
fx = subs(F,findsym(F),x0);; u% R4 [/ J, U9 r- m4 L
r=x0-B*fx;* b" E9 M  r$ g# l# t4 e
y=r-x0;. ^3 |8 @& u! Q) q
fr = subs(F,findsym(F),r);
3 C  x' _" Q! Q4 Z# ez = fr-fx;8 u3 Z5 ?( F2 W. s
B1=B+ y*y'/(y'*z)-B*z*z'*B/(z'*B*z); %调整A
8 ]; O$ @9 Q7 ]$ y( XB=B1;4 }  H6 x; h5 ]) ]7 H
n=n+1;
" o% x5 y) D# |( X" l- yif(n>100000) %迭代步数控制# h  ^  h) ~: q) D& }, J7 ]
disp('迭代步数太多,可能不收敛!');3 `  v6 e6 o9 w. I+ [+ \2 s: r
return;
$ w& I- v! l' Fend
  z. J! |& T. U7 E& t+ |+ Stol=norm(r-x0);- D' p2 [& c+ \6 x: m
end9 j, `4 ], c% j) Y: _
问题:这个程序我是通过其他方法改变来的,现在想在这个基础上增加一个求偏导的一个函数类似于“df=jacobian(f,[x1 x2]);%函数f的偏导”,可是加进去以后就会出现错误,改正好多次,都不行,后来实在不行我就加在了调用函数中,可是这么做,运行效率太低,唯恐老师会减分,所以希望各位前辈能给予实质性的指点,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-6 09:18 , Processed in 0.059463 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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