Matlab随笔之求解线性方程

简介: 原文:Matlab随笔之求解线性方程理论知识补充: %矩阵除分为矩阵右除和矩阵左除。 %矩阵右除的运算符号为“/”,设A,B为两个矩阵,则“A/B”是指方程X*B=A的解矩阵X。 %矩阵A和B的列数必须是相等。
原文: Matlab随笔之求解线性方程

理论知识补充:

%矩阵除分为矩阵右除和矩阵左除。

%矩阵右除的运算符号为“/”,设A,B为两个矩阵,则“A/B”是指方程X*B=A的解矩阵X。

%矩阵A和B的列数必须是相等。

% 矩阵左除的运算符号为“\”,设A,B为两个矩阵,则“B\A”是指方程B*X=A的解矩阵X。

%矩阵A和B的行数必须是相等。

%求解多项式的解,用roots函数

%求解定解方程组(未知数个数等于方程总数)

%A*x=b 
A=[1,2; 
   3,4]; 
b=[5;11]; 
y=A\b
z=inv(A)*b

 

运行结果:

y =

     1 
     2


z =

     1 
     2

%求解不定方程组(未知数个数大于方程总数)

A=[4,5,1; 
   1,2,3]; 
b=[3;5]; 
x=A\b

运行结果:

x =

         0 
    0.3077 
    1.4615

%求解超定方程组(未知数个数小于方程总数)

 

A=[1,1; 
   -2,-4; 
   1,-2]; 
b=[2;-3;2]; 
x=A\b 

求解输出如下图所示,需要说明时,求得结果是以一最小二乘近似解。

x =

    1.8182 
   -0.1299

%求解奇异方程组(多个方程之间有重复)

 

A=[1,2,1; 
    -2,-4,-2; 
    1,-2,5]; 
b=[6;-12;3]; 
x=A\b 

此时,结果为

警告: 矩阵为奇异工作精度。 
> In test at 5

x =

   NaN 
   NaN 
   NaN

此时,可以做同解异构,如下:

A=[1,2,1; 
   -2,-4,-2; 
    1,-2,5; 
    0,0,0]; 
b=[6;-12;3;0]; 
x=A\b

运行结果为:

 

x =

         0 
    2.2500 
    1.5000

 

 总结:将上面的所有情况封装起来,做成一个函数,代码如下:

function X=solveEquation(A,b)
% 解方程A*x=b
% A为系数方程,b为列向量
[temp1,temp2]=size(b);
if(temp2~=1)%判断b是否为列向量
    disp('b不是列向量!');
    return
end
[c,d]=size(A);%c为方程数,d为未知量个数
if(c~=temp1)
    disp('A,b行数不一致!');
    return
end
if(c==d)
    if(det(A)==0)%奇异方程组
        disp('奇异方程组问题');
        A=[A;zeros(1,d)];
        b=[b;0];
        X=A\b;
        return
    end
    %定解方程组    
    disp('定解方程组问题');
    X=A\b;
    return
elseif(c>d)%超定方程
    disp('超定方程组问题');
    X=A\b;
    return
else
    disp('不定方程问题');
    X=A\b;
    return
end

 

目录
相关文章
|
4月前
|
算法
MATLAB求解非线性方程组的五种方法
求解线性方程分为两种方法--二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法
|
机器学习/深度学习 传感器 算法
【MOSMA】基于粘菌算法求解多目标优化问题附matlab代码
【MOSMA】基于粘菌算法求解多目标优化问题附matlab代码
|
10月前
|
算法
数值分析算法 MATLAB 实践 非线性方程(组)求解
数值分析算法 MATLAB 实践 非线性方程(组)求解
115 0
|
机器学习/深度学习 传感器 算法
【电力系统】基于cplex求解综合能源系统优化问题附matlab代码
【电力系统】基于cplex求解综合能源系统优化问题附matlab代码
|
机器学习/深度学习 传感器 算法
基于Matlab求解高铁运营公司列车开行优化问题
基于Matlab求解高铁运营公司列车开行优化问题
|
机器学习/深度学习 传感器 算法
基于考虑成本敏感的人工蜂群算法求解多目标优化问题附matlab代码
基于考虑成本敏感的人工蜂群算法求解多目标优化问题附matlab代码
|
算法 决策智能 C++
运筹优化学习10:分支定界算法求解整数规划问题及其Matlab实现(下)
运筹优化学习10:分支定界算法求解整数规划问题及其Matlab实现
运筹优化学习10:分支定界算法求解整数规划问题及其Matlab实现(下)
|
算法 决策智能
运筹优化学习10:分支定界算法求解整数规划问题及其Matlab实现(上)
运筹优化学习10:分支定界算法求解整数规划问题及其Matlab实现
运筹优化学习10:分支定界算法求解整数规划问题及其Matlab实现(上)
|
机器学习/深度学习 传感器 算法
【TSP问题】基于状态转移算法求解旅行商问题附matlab代码
【TSP问题】基于状态转移算法求解旅行商问题附matlab代码
|
机器学习/深度学习 传感器 算法
【无人机】基于混合粒子群算法求解无人机航迹规划问题附Matlab代码
【无人机】基于混合粒子群算法求解无人机航迹规划问题附Matlab代码

热门文章

最新文章