在matlab中,运用共轭梯度求二次函数极小点,程序老是会出现以下状况,请大仙帮我看看,哪边错了?syms x1 x2 kf=(3/2)*(x1^2)+(1/2)*(x2^2)-x1*x2-2*x1;A=[3 -1;-1 1];x_1=[-2;4];fx1=diff(f,x1);fx2=diff(f,x2);fx1_1=subs(fx1,{x1,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 04:27:12

在matlab中,运用共轭梯度求二次函数极小点,程序老是会出现以下状况,请大仙帮我看看,哪边错了?syms x1 x2 kf=(3/2)*(x1^2)+(1/2)*(x2^2)-x1*x2-2*x1;A=[3 -1;-1 1];x_1=[-2;4];fx1=diff(f,x1);fx2=diff(f,x2);fx1_1=subs(fx1,{x1,
在matlab中,运用共轭梯度求二次函数极小点,程序老是会出现以下状况,请大仙帮我看看,哪边错了?
syms x1 x2 k
f=(3/2)*(x1^2)+(1/2)*(x2^2)-x1*x2-2*x1;
A=[3 -1;-1 1];
x_1=[-2;4];
fx1=diff(f,x1);
fx2=diff(f,x2);
fx1_1=subs(fx1,{x1,x2},{-2,4});
fx2_1=subs(fx2,{x1,x2},{-2,4});
r_1=[fx1_1;fx2_1];
p_1=-r_1;
t_1=-((r_1)'*p_1)/((A*p_1)'*p_1);
x_2=x_1+t_1.*p_1;
fx1_2=subs(fx1,{x1,x2},(x_2)');
fx2_2=subs(fx2,{x1,x2},(x_2)');
r_{2}=[fx1_2;fx2_2];
M=r_{2}
for k=2:10
while norm(r_{k})>=0.01
a_{k-1}=((r_{k})'*r_{k})/((r_{k-1})'*r_{k});
p_{k}=-(r_{k})+(a_{k-1}).*(p_{k-1});
t_{k}=-((r_{k})'*p_{k})/((A*p_{k})'*(p_{k}));
x_{k+1}=x_{k}+((t_{k}).*(p_{k}));
fx1_{k+1}=subs(fx1,{x1,x2},(x_{k+1})');
fx2_{k+1}=subs(fx2,{x1,x2},(x_{k+1})');
r_{k+1}=[fx1_{k+1};fx2_{k+1}];
k=k+1;
end
end
optx=(x_{k})
M =
0.3529
0.7059
Error using ==> mtimes
Inner matrix dimensions must agree.

在matlab中,运用共轭梯度求二次函数极小点,程序老是会出现以下状况,请大仙帮我看看,哪边错了?syms x1 x2 kf=(3/2)*(x1^2)+(1/2)*(x2^2)-x1*x2-2*x1;A=[3 -1;-1 1];x_1=[-2;4];fx1=diff(f,x1);fx2=diff(f,x2);fx1_1=subs(fx1,{x1,
你的这个 执行结果是生成二维元胞数组 r_{2}=[fx1_2;fx2_2];
我猜你用这个的本意是由可做下标的r_{k},其实循环中不用这样做做下标,只要找个中间变量循环更新一次变量值就可以了 ,帮你改好了,自己编程序要学会调试找错哦
syms x1 x2 k
f=(3/2)*(x1^2)+(1/2)*(x2^2)-x1*x2-2*x1;
A=[3 -1;-1 1];
fx1=diff(f,x1);
fx2=diff(f,x2);
fx11=subs(fx1,{x1,x2}, {-2,4});
fx21=subs(fx2,{x1,x2},{-2,4});
x_1=[-2;4];
r1=[fx11;fx21];
p1=-r1;
t1=-((r1)'*p1)/((A*p1)'*p1);
x_2=x_1+t1.*p1;
xx={x_2(1),x_2(2)};
fx12=subs(fx1,{x1,x2}, xx);
fx22=subs(fx2,{x1,x2},xx);
r2=[fx12;fx22];
%M=r_{2};
for k=2:10
while norm(r2)>=0.01
a1=((r2)'*r2)/((r1)'*r1);
p2=-(r2)+(a1).*(p1);
t2=-((r2)'*p2)/((A*p2)'*(p2));
x_3=x_2+((t2).*(p2));
xx={x_2(1),x_2(2)};
fx12=subs(fx1,{x1,x2},xx);
fx22=subs(fx2,{x1,x2},xx);
r2=[fx12;fx22];
x_2=x_3;
end
end
optx=(x_2)

什么是共轭梯度法?求matlab程序 在matlab中,运用共轭梯度求二次函数极小点,程序老是会出现以下状况,请大仙帮我看看,哪边错了?syms x1 x2 kf=(3/2)*(x1^2)+(1/2)*(x2^2)-x1*x2-2*x1;A=[3 -1;-1 1];x_1=[-2;4];fx1=diff(f,x1);fx2=diff(f,x2);fx1_1=subs(fx1,{x1, MATLAB 中怎么求N维向量函数的梯度,求完怎么赋值? matlab 如何做到先共轭再求导syms ta=t^2+t;q=diff(a',t); %对a求共轭subs(q,t,1);结果ans=3*D(conj)(2)请问如何处理D(conj)?baidu了下说是求导没法判断共轭符号.我其实是在求共轭梯度法,不知哪里错了,遇上 下图中取共轭在matlab中怎么编 MATLAB中怎样求一个多元函数的梯度?若某一函数f(x)是一个n元函数,x是一个向量,怎么求该函数的梯度呢?如果我求一个普通函数的梯度呢?也就是说没有给出具体表达式的函数f(x) 什么是共轭梯度法? 共轭梯度法求线性方程组的初值如何选取 已知函数,怎么求梯度.已知梯度怎么求函数. 二次函数在生活中运用在那些方面? 二次函数与几何的运用在二次函数中压轴题往往有几何,求有关相似三角形、等腰三角形、平行四边形与二次的题带有解析和答案.加上如何做这类题,求高手相助. 对于一个具体函数来说,梯度在MATLAB中的意义是什么呢,补充:是 gradient函数的意义! 请问什么是共轭梯度法? 在matlab中求函数 的三阶导数 在matlab中求函数值,为什么会求得复数 在MATLAB中有没有求余数的函数 matlab中梯度函数gradient运行出错,显示这样的错误信息.Attempt to execute SCRIPT gradient as a function. 请问有人知道共轭梯度法的FR,PRP,HS三个算法的Matlab程序吗?如题...感激不尽!