⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cgm.txt

📁 共轭梯度解决多维的非线性问题
💻 TXT
字号:
以函数

f=1-(1/(sqrt(2*pi)))*(exp((-(xi-3)^2+yi^2)/2)+0.6*exp((-(xi+3)^2+yi^2)/2));

为例 求解最小值

 

function f=conjugate_gradient(x0,eps)
x=x0;
syms xi yi a
f=1-(1/(sqrt(2*pi)))*(exp((-(xi-3)^2+yi^2)/2)+0.6*exp((-(xi+3)^2+yi^2)/2));
fx=diff(f,xi);
fy=diff(f,yi);
fx=subs(fx,{xi,yi},x0);
fy=subs(fy,{xi,yi},x0);
fi=[fx,fy];%求得初始的梯度
n=0;
while double(sqrt(fx^2+fy^2))>eps
s=-fi;
if n<=0
s=-fi;
else
s=s1;
end%初始的搜索方向
x=x+a*s;
f=subs(f,{xi,yi},x);
f1=diff(f);
f1=solve(f1);%精确的线性搜索
if f1~=0
ai=double(f1);
else
break
x,n
end
x=subs(x,a,ai);
f=1-(1/(sqrt(2*pi)))*(exp((-(xi-3)^2+yi^2)/2)+0.6*exp((-(xi+3)^2+yi^2)/2));
fxi=diff(f,xi);
fyi=diff(f,yi);
fxi=subs(fxi,{xi,yi},x);
fyi=subs(fyi,{xi,yi},x);
fii=[fxi,fyi];
d=(fxi^2+fyi^2)/(fx^2+fy^2);
s1=-fii+d*s;  %搜索方向
n=n+1;        %搜索次数
fx=fxi;
fy=fyi;
end
x,n 
%请输入:conjugate_gradient([0,0],10^(-6))后运行

f=(1.5-xi*(1-yi))^2+(2.25-xi*(1-yi^2))^2+(2.625-xi*(1-yi^3))^2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -