MATLAB求解非齐次线性方程组
根据线性代数中求解方程组的基本知识,首先应判断系数矩阵的秩是否和增广矩阵的秩相等,若不等,则无解;若有解,根据秩和未知量个数的关系,判断是唯一解还是无穷多解;若为无穷多解,其通解为齐次方程组的通解加非齐次方程组的特解。
求非齐次线性方程组Ax=b
的特解,可直接使用命令A\b
,求解齐次线性方程组的通解,可以使用函数null
或rref
来实现。
命令 | 含义 |
---|---|
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求解方程组
\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求解非齐次线性方程组相关推荐
- matlab解符号方程组,matlab 求解符号方程组
1特殊符号可爱组成的小狗图案 求解符号方程组: 特殊符号可爱组成的小狗图案,缺失:matlab求解符号方程组4057/9 ▄██████▄ █████████▄ ███ ▄████▄▄▄▄███ ██ ...
- MATLAB求解非线性方程组的五种方法
MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分 ...
- matlab二元方程区间求解,matlab求解二元方程组
陈星似 魔法师 matlab求解二元方程组 悬赏分:0 提问时间:2010-11-30 23:29回答数:1浏览量:241问题指向:全国 t1=(q1+q2+q3+q4-q5-q6-q7)/g1/c1 ...
- matlab求解代数方程组,matlab求解代数方程组.doc
matlab求解代数方程组.doc 1第三讲Matlab求解代数方程组理论介绍:直接法+迭代法,简单介绍相关知识和应用条件及注意事项软件求解:各种求解程序讨论如下表示含有个未知数.由个方程构成的线性方 ...
- MATLAB求解非线性方程组(牛顿拉夫逊方法)
文章目录 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 牛顿拉夫逊方法迭代求解 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 这个函数用来写 ...
- 求解非齐次线性方程组算法
1. 非齐次线性方程组有解的条件 如下非齐次线性方程组: 由系数矩阵和常数列向量构成的增广矩阵如下: 无解情况: 唯一解情况: 无穷解情况: 2. 高斯消元法求解 步骤: 1) ...
- 龙格库塔法matlab求解微分方程组,微分方程组的龙格库塔公式求解matlab版.pdf
微分方程组的龙格库塔公式求解matlab版 微分方程组的龙格-库塔公式求解matlab版 南京大学 王寻 1. 一阶常微分方程组 考虑方程组 y'f x,y,z , y x y ...
- matlab矩阵方程奇异,matlab求解非线性方程组 牛顿迭代发 奇异矩阵
求高手帮忙看看下面的程序怎么改 牛顿迭代法 求解后现实矩阵奇异,跪求高手 -------------------------------- %首先建立函数fun %储存方程组编程如下将fun.m ...
- matlab求解不等式方程组解集,matlab求不等式方程组的可行解
求高手用matlab解一个三元的方程组 我算的你这个解都是无穷大.具体过程如下:第一步:建立M文件函数myf.mfunctionf=myf(x)f(1)=600+x(1)*cos(10)+x(2)*s ...
最新文章
- java连接数据库hei_如何黑MySQL5数据库?(来自:http://superhei.blogbus.com)
- 【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
- 【SpringMVC】SpringMVC系列4之@RequestParam 映射请求参数值
- 合并两个链表数据结构c语言,合并两个链表.
- 手工做迷宫_好玩易上手的自然探索实验,春天必备,宅家就能带孩子做起来!...
- 狼奔代码生成器使用说明
- mybatis审查要点
- 阿里程序员双11加班吃什么?
- mongodb分片技术
- Scrapy爬虫项目的创建及案例
- 链表-快慢指针(C++)
- 在NS2 AODV协议中添加blackhole attacker(黑洞攻击) [转载]
- main方法是java app_Appmain1.java
- 我用 140 行代码,带你看一场流星雨⭐
- 【唐诗分析器】实现思想代码+具体测试
- Linux内核源代码概述
- go使用viper读取配置参数热加载
- minio安装部署及使用
- 如何用紧凑型语音表征打造高性能语音合成系统
- Windows服务器防火墙端口怎么开放?扬州服务器租用140.210.20.X