梯度投影算法 matlab,梯度投影法 MATLAB程序可执行

MATLAB程序可执行,两个程序注意比较

function [x,minf]=minRosen(f,A,b,x0,var,eps) %目标函数:f;

%约束矩阵:A;

%约束右端力量:b;

%初始可行点:x0;

%自变量向量:var;

%精度:eps;

%目标函数取最小值时的自变量值:x;

%目标函数的最小值:minf;

format long;

ifnargin == 5

eps=1.0e-6;

end

syms l;

x00=transpose(x0);

n=length(var);

sz=size(A);

m=sz(1);

gf=jacobian(f,var);

bConti=1;

whilebConti

k=0;

s=0;

A1=A;

A2=A;

b1=b;

b2=b;

fori=1:m

dfun=A(i,:)*x00-b(i);

if abs(dfun)<0.000000001

k=k+1;

A1(k,:)=A(i,:);

b1(k,1)=b(i);

else

s=s+1;

A2(s,:)=A(i,:);

b2(s,1)=b(i);

end

end

if k>0

A1=A1(1:k,:);

b1=b1(1:k,:);

end

if s>0

A2=A2(1:s,:);

b2=b2(1:s,:);

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值