基本可行解matlab求解代码

基本可行解matlab求解代码

1.基本可行解的定义

在这里插入图片描述

2.求解代码
function [xs,Bs,x_num]=BFS(A,b)
xs = [];%存储基本可行解 行向量
Bs = {};%存储可行基矩阵 行向量
x_num = 0;%基本可行解个数
B = [];
x = [];
k = 1;
[row,col] = size(A);
m = rank(A);%矩阵A的秩
all_num = nchoosek(col,row);%组合数 计算所有可能的总数
all_col = nchoosek(1:col,m);%计算出所有可能组合的按列下标排列结果,返回一个矩阵
if m < row
    error('矩阵A不满足条件');
else
    for i = 1:all_num
        B = A(:,all_col(i,:));
        if rank(B) == m
            x = inv(B)*b;
            if x >= 0
                for j=1:col
                    xs(k,j) = 0;
                end
                xs(k,all_col(i,:)) = x;
                Bs{1,k} = B;
                k = k+1;
            end
        end
    end
    x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值