根据线性代数中求解方程组的基本知识,首先应判断系数矩阵的秩是否和增广矩阵的秩相等,若不等,则无解;若有解,根据秩和未知量个数的关系,判断是唯一解还是无穷多解;若为无穷多解,其通解为齐次方程组的通解加非齐次方程组的特解。

求非齐次线性方程组Ax=b的特解,可直接使用命令A\b,求解齐次线性方程组的通解,可以使用函数nullrref来实现。

命令 含义
B = null(A,'r') 求系数矩阵为A的齐次线性方程组Ax=0的基础解系,结果为有理数,B的列向量即基础解系的列向量
Z = null(A) 求出Ax=0的基础解系后,将基础解系的向量正交单位化,存储在Z中
C = rref(A) 求出矩阵A的行最简形矩阵(reduced row echelon form)
function [S_H, S_P] = solveLS(A,b)
% 输入参数A:系数矩阵
% 输入参数b:Ax=b的常数项列向量b
% S_H:齐次线性方程组的基础解系
% S_P:非齐次线性方程组的特解
if size(A,1) ~= length(b)   %size(A,1)求矩阵的行数error('输入数据错误,请重新输入!');return;
elseB = [A,b];  %增广矩阵rank_A = rank(A);   %求系数矩阵的秩rank_B = rank(B);   %求增广矩阵的秩if rank_A ~= rank_B %无解情况disp('线性方程组无解!');S_H = [];S_P = [];else if rank_B == size(A,2) %若增广矩阵的秩 = 未知量个数%size(A,2)求矩阵的列数,相当于length(A)disp('线性方程组有唯一解!');S_P = A\b;  %求唯一解S_H = [];elsedisp('线性方程组有无穷解!');S_H = null(A,'r');%求出齐次方程组的基础解系S_P = A\b;  %求非齐次方程组的特解endend
end

使用Matlab求解方程组

⎧⎩⎨x1+2x2−2x3+3x4=22x1+4x2−3x3+4x4=55x1+10x2−8x3+11x4=12

\begin{cases} x_1+2x_2-2x_3+3x_4=2 \\ 2x_1+4x_2-3x_3+4x_4=5 \\ 5x_1+10x_2-8x_3+11x_4=12 \end{cases}

A=[1 2 -2 3; 2 4 -3 4; 5 10 -8 11];
b=[2 5 12]';format rat;
[S_H, S_P]=solveLS(A,b)

运行结果

线性方程组有无穷解!S_H =-2              1
       1              0       0              2       0              1       S_P =0       7/4     0       -1/2

该线性方程组有无穷多解,通解为
x=k1⎛⎝⎜⎜⎜−2100⎞⎠⎟⎟⎟+k2⎛⎝⎜⎜⎜1021⎞⎠⎟⎟⎟+⎛⎝⎜⎜⎜07/40−1/2⎞⎠⎟⎟⎟,k1,k2∈R x=k_1 \left(\begin{matrix} -2\\ 1\\ 0\\ 0 \end{matrix} \right)+k_2 \left(\begin{matrix} 1\\ 0\\ 2\\ 1 \end{matrix} \right)+ \left(\begin{matrix} 0\\ 7/4\\ 0\\ -1/2 \end{matrix} \right),k_1,k_2 \in R

MATLAB求解非齐次线性方程组相关推荐

  1. matlab解符号方程组,matlab 求解符号方程组

    1特殊符号可爱组成的小狗图案 求解符号方程组: 特殊符号可爱组成的小狗图案,缺失:matlab求解符号方程组4057/9 ▄██████▄ █████████▄ ███ ▄████▄▄▄▄███ ██ ...

  2. MATLAB求解非线性方程组的五种方法

    MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分 ...

  3. matlab二元方程区间求解,matlab求解二元方程组

    陈星似 魔法师 matlab求解二元方程组 悬赏分:0 提问时间:2010-11-30 23:29回答数:1浏览量:241问题指向:全国 t1=(q1+q2+q3+q4-q5-q6-q7)/g1/c1 ...

  4. matlab求解代数方程组,matlab求解代数方程组.doc

    matlab求解代数方程组.doc 1第三讲Matlab求解代数方程组理论介绍:直接法+迭代法,简单介绍相关知识和应用条件及注意事项软件求解:各种求解程序讨论如下表示含有个未知数.由个方程构成的线性方 ...

  5. MATLAB求解非线性方程组(牛顿拉夫逊方法)

    文章目录 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 牛顿拉夫逊方法迭代求解 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 这个函数用来写 ...

  6. 求解非齐次线性方程组算法

    1.      非齐次线性方程组有解的条件 如下非齐次线性方程组: 由系数矩阵和常数列向量构成的增广矩阵如下: 无解情况: 唯一解情况: 无穷解情况: 2.      高斯消元法求解 步骤: 1)   ...

  7. 龙格库塔法matlab求解微分方程组,微分方程组的龙格库塔公式求解matlab版.pdf

    微分方程组的龙格库塔公式求解matlab版 微分方程组的龙格-库塔公式求解matlab版 南京大学 王寻 1. 一阶常微分方程组 考虑方程组     y'f x,y,z , y x y ...

  8. matlab矩阵方程奇异,matlab求解非线性方程组 牛顿迭代发 奇异矩阵

    求高手帮忙看看下面的程序怎么改  牛顿迭代法  求解后现实矩阵奇异,跪求高手 -------------------------------- %首先建立函数fun %储存方程组编程如下将fun.m ...

  9. matlab求解不等式方程组解集,matlab求不等式方程组的可行解

    求高手用matlab解一个三元的方程组 我算的你这个解都是无穷大.具体过程如下:第一步:建立M文件函数myf.mfunctionf=myf(x)f(1)=600+x(1)*cos(10)+x(2)*s ...

最新文章

  1. java连接数据库hei_如何黑MySQL5数据库?(来自:http://superhei.blogbus.com)
  2. 【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
  3. 【SpringMVC】SpringMVC系列4之@RequestParam 映射请求参数值
  4. 合并两个链表数据结构c语言,合并两个链表.
  5. 手工做迷宫_好玩易上手的自然探索实验,春天必备,宅家就能带孩子做起来!...
  6. 狼奔代码生成器使用说明
  7. mybatis审查要点
  8. 阿里程序员双11加班吃什么?
  9. mongodb分片技术
  10. Scrapy爬虫项目的创建及案例
  11. 链表-快慢指针(C++)
  12. 在NS2 AODV协议中添加blackhole attacker(黑洞攻击) [转载]
  13. main方法是java app_Appmain1.java
  14. 我用 140 行代码,带你看一场流星雨⭐
  15. 【唐诗分析器】实现思想代码+具体测试
  16. Linux内核源代码概述
  17. go使用viper读取配置参数热加载
  18. minio安装部署及使用
  19. 如何用紧凑型语音表征打造高性能语音合成系统
  20. Windows服务器防火墙端口怎么开放?扬州服务器租用140.210.20.X

热门文章

  1. Docker harbor私有仓库部署与管理
  2. 2022-雨课堂-工程伦理期末考试答案
  3. 如何保存BING首页的图片壁纸
  4. 中国获得2022年冬奥会举办权【经济学人】
  5. 草图大师里创建动态组件_教你搞定SketchUp草图大师动态组件模型下载
  6. 自动驾驶:自动驾驶车需要哪些核心技术?
  7. 从OSI七层模型详谈《计算机网络基础》
  8. redhat linux中文,Redhat 中文解决方案
  9. 融合边界处理机制的学习型麻雀搜索算法
  10. matlab画弯曲圆柱体,matlab – 将平面弯曲成闭合的表面/圆柱体