找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2417|回复: 0

请教MATLAB编程?

[复制链接]
发表于 2015-11-21 23:09:14 | 显示全部楼层 |阅读模式
优化设计老师布置用MATLAB对变尺度法进行MATLAB编程(也叫拟牛顿法),我是用拟牛顿法中的BFD法进行编程,程序如下:(问题在程序后面)7 C7 t) }6 C3 o( p! j
function [r,n]=mulDFP(F,x0,B,eps)
) }  @7 w! C8 z3 e! D7 `%用拟牛顿法中的DFP法中求极小点和极小值。: [" W- |2 l2 v7 ]! }
%Designed by GAO,Mechanical Engineering College
  E) a- L1 D/ _3 |%Shenyang University of Technology7 f" \% u) e, Q5 {
%November,2015
" Z( k1 d8 o% K! O4 h%调用格式:
+ G7 Q$ C/ w0 B4 v7 v%syms x1 x2;3 Z8 z( v" ~' g9 |' i. A$ b* y/ W
%z=表达式;3 b8 i. B/ Y; f# f5 ?. g
%zx1=simple(diff(z,x1)),zx2=diff(z,x2)# [, ^* a$ M: O! ?
%X0=[给定初始值];
( ~& P2 \9 c3 W%f=[zx1;zx2];
; Q0 S9 Z  i" M: e4 O4 e8 v1 A%[n,r]=mulDFP(f,x0)% s" U: m! ], {* Z; r" T9 ~( m2 [
if nargin==24 a& Y' |5 k0 C: w5 ]
l = length(x0);
* y4 C8 y: W4 g3 ]4 AB=eye(l); %A取为单位阵; |) d2 J: F- f! V6 u5 f* T4 n. d
eps=1.0e-4;* J8 F1 t# l6 F( u
else
, @, }6 E7 Y* x4 Q- ^, pif nargin==3$ Q  h% f4 {0 E  r% {0 `
eps=1.0e-4;
4 N4 M: \% `+ \4 S8 Fend  i# U. Z7 P6 G  P' i* }( W
end& q/ V7 L( x: ?* V7 o; u1 T! `: C/ d
fx = subs(F,findsym(F),x0);
. q5 o' i, L& ~! s6 a/ l* z7 `r=transpose(x0)-B*fx;
( \) h: x7 d# I  x- i  hn=1;2 \$ m+ f  O& N) @1 @
tol=1;8 O( a0 N% o9 x
while tol>eps
  s( K9 t' j* I4 I0 A% ?/ U1 Hx0=r;
# X0 B( R4 m/ k& B; J# W$ ?fx = subs(F,findsym(F),x0);/ |/ U7 @. c  }( O
r=x0-B*fx;( k, U, Z  @5 P8 t2 Z: {
y=r-x0;  X6 q2 U- B/ j# k& n: L+ q1 a
fr = subs(F,findsym(F),r);
6 p+ d& d2 y  r0 D' m) G* b4 Cz = fr-fx;
% g) }) `+ i- h" g% C. h% {B1=B+ y*y'/(y'*z)-B*z*z'*B/(z'*B*z); %调整A" W9 Z8 |' o2 X) Q$ g& T* M% e4 k
B=B1;/ u+ m$ H! Z7 a, e. F
n=n+1;
, G( Z- }9 J: o+ N7 c) ?if(n>100000) %迭代步数控制/ U" N; q* G; d, f8 X# b5 {- B
disp('迭代步数太多,可能不收敛!');: K( U! s9 ?4 W7 g# b3 N' p$ v/ Q
return;4 Z# m: O' }2 ?, T
end
4 {$ [5 ^0 B. X2 S( G$ xtol=norm(r-x0);4 S" A0 Y3 t1 A; B
end% m( q  e- F- [; {* i3 f: \2 u1 A
问题:这个程序我是通过其他方法改变来的,现在想在这个基础上增加一个求偏导的一个函数类似于“df=jacobian(f,[x1 x2]);%函数f的偏导”,可是加进去以后就会出现错误,改正好多次,都不行,后来实在不行我就加在了调用函数中,可是这么做,运行效率太低,唯恐老师会减分,所以希望各位前辈能给予实质性的指点,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-21 02:39 , Processed in 0.063598 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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