matlab常用

1数据转换

1.单精度数据传hex

num2hex(single(1))
num2hex(1) %double

2.hex转单精度

typecast(uint32(hex2dec('3f800000')),'single') %hex转单精度 1
hex2num('4024000000000000') %hex转双精度10

3.初等变换

rref

4.非齐次方程

判断rank(A)和rank([A,b]);

无穷多解情况:

>> A=[1 -1 -1 2;2 -2 1 -5;1 -1 2 -7];

>> b=[2 1 -1]';

>> r=rank(A) r = 2

>> r1=rank([A,b]) r1 = 2

>> X0=A\b
Warning: Rank deficient, rank = 2, tol =  3.396629e-15. 

X0 =

         0
   -1.3333
         0
    0.3333
>> B=null(A,'r')

B =

     1     1
     1     0
     0     3
     0     1
X0是一个特解,B中的第一列b1,是第二列是b2,方程组的通解为X=X0+c1*b1+c2*b2,其中c1,c2是任意常数。
唯一解情况:左除或者求逆即可。X=A\b或者X=inv(A)*b

5.求不定方程的整数解

例如:求解2*x+3*y+4*z=30的整数解

clear,clc,close all
f=[1 1 1];
intlinprog(f,[1 2 3],[],[],[2 3 4],30,[0 0 0],[30 30 30])

intlinprog是求解整数线性规划问题的函数,前面8个参数定义如下

     f :目标函数的系数矩阵
intcon :整数所在位置([1 2 3]表示3个变量都是整数)
     A :不等式约束的变量系数矩阵
     b :不等式约束的资源数
   Aeq :等式约束的变量系数矩阵
   beq :等式约束的资源数
    lb :变量约束下限
    ub :变量约束上限

例2:29*a+30*b+31*c=366,求f=a+b+c整数解

clear,clc,close all
f=[1 1 1];
intlinprog(f,[1 2 3],[],[],[29 30 31],366,[1 2 1],[13 13 13])

或者使用循环

m=13;n=13;l=13;
disp('满足条件:29a+30b+31c=366的解')
for i=1:m
    for j=1:n
        for k=1:l
            a=i;b=j;c=k;
            f=366-(29*a+30*b+31*c);
            if f==0 
                disp(['a=',num2str(i),' b=',num2str(j),' c=',num2str(k)])
            end
        end
    end
end

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值