你那有最速下降法的MATLAB程序吗?给我一份,谢谢

 我来答
泊进√62a8648
2010-04-29 · TA获得超过501个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:290万
展开全部
function y = minSpeed2(functions,var,x0,a,stepNum)
%functions is a function of var,for example
%x = [x1,x2,x3,x4] y = x*x.';
%var is a variable array like [x1,x2,x3,...]
%you shouldn't like [a,b,c,d,...] or other kinds.
%x0:起始迭代值 a:迭代步长
VF = jacobian(functions,var);
x = zeros([1001,length(x0)]);
x(1,:) = x0;
for k=1:stepNum
x(k+1,:) = x(k,:) - a*double( vpa( subs(VF,var(1:end),x(k,:)) ) );
end;
if length(x0)==2
plot(x(1:k,1),x(1:k,2),'o-');grid on;
end;
if length(x0)==3
plot3(x(1:k,1),x(1:k,2),x(1:k,3),'o-');grid on;
end;
disp(x(stepNum,:));
y = x(stepNum,:);

调用格式:
clc,clear all;
syms x1 x2;
fg = (x1-5).^2+(x2+4).^2;
minSpeed2(fg,[x1 x2],[1 -2],0.01,300)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式