Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-11-29, 07:37   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 使用solve()和根多重性的问题

为什么这不适用于Rosenbrock?它与测试功能一起使用。但是,如何使它与Rosenb一起使用?该错误是指h的解对于该函数不是唯一的。我该怎么办?

错误:“由于左侧和右侧具有不同数量的元素,因此无法执行分配。”

clc clear format long syms XY; %f = X - Y + 2*X^2 + 2*X*Y + Y^2; % Test function f= 100*(YX^2)^2+ (1-X)^2; %ROSENBROCK FUNCTION !!!!!!!!!!!!!!!!!!!!!!! x(1) = -1; y(1) = 4; e = 10^(-8); i = 1; % Gradient set up: df_dx = diff(f, X); df_dy = diff(f, Y); J = [subs(df_dx,[X,Y], [x(1),y(1)]) subs(df_dy, [X,Y], [x(1),y(1)])]; S = -(J); % Search Direction %Minimization Algorithm: while norm(J) > e I = [x(i),y(i)]'; syms h; g = subs(f, [X,Y], [x(i)+S(1)*h,y(i)+h*S(2)]); dg_dh = diff(g,h); h = solve(dg_dh, h); %Problem here!!!!!!!!!!!!!!!!!!!!! x(i+1) = I(1)+h*S(1); y(i+1) = I(2)+h*S(2); i = i+1; J = [subs(df_dx,[X,Y], [x(i),y(i)]) subs(df_dy, [X,Y], [x(i),y(i)])]; % Updated Gradient S = -(J); end

更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 00:09


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.