用matlab求解线性代数方程
2020-04-01 19:01
1426 查看
用matlab求解线性代数方程
% 功能:线性代数方程求解:AX=B
% 解的判定矩阵:C=[A B]
% 求解方法分三种情况讨论:
% 唯一解:A为非奇异方阵,x=inv(A)*B
% 无穷解:rank(A)=rank©<n
% 基础解系:x1=null(A)
% 特解:x=pinv(A)*B
% 无解:矛盾方程的最小二乘解法
function x=linear_solver(A,B) C=[A B]; [m,n]=size(A); d=[rank(A) rank(C)]; if d(1)==d(2) if d(1)<n b=['此方程有无穷多解,其中x1为通解,x2为特解']; sprintf('%s',b) syms a1 a2; x1=null(sym(A)); x2=sym(pinv(A))*B; x=a1*x1(:,1)+a2*x1(:,2)+x2 end if d(1)==n b=['此方程有唯一解']; x=inv(A)*B end else b=['此方程无正常解,求得最小二乘解如下']; x=pinv(A)*B end 示例: A=[1 2 3 4;2 2 1 1;2 4 6 8;4 4 2 2]; B=[1;3;2;6]; ans = '此方程有无穷多解,其中x1为通解,x2为特解' x = 2*a1 + 3*a2 + 125/131 96/131 - (7*a2)/2 - (5*a1)/2 a1 - 10/131 a2 - 39/131
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 二分法,matlab中利用二分法求解一个多项式方程的近似值。
- 用matlab求解符号方程及符号方程组
- 二分法求解方程的值 matlab
- 利用Matlab求解Laplace方程
- 利用matlab的PDE工具箱求解Neumann边界的Poisson方程之2
- matlab---方程求解
- MATLAB数值微积分与方程求解
- [MATLAB]专题六单元作业(数值微积分与方程求解)答案
- 编程语言_matlab自定义函数与代数方程求解
- 采用Newmark-β法求解振动方程——MATLAB
- 一维扩散方程的 CRANK-NICOLSON求解原理及matlab代码实现
- 使用matlab求解二维浅水方程的数值解(一)—浅水波
- MATLAB实例之对线性,非线性,超越方程的求解
- matlab中方程求解的基本命令
- 六、数值微积分与方程求解(MATLAB学习笔记)
- Matlab 线性代数(一)--行列式与方程组求解
- 利用matlab的PDE工具箱求解Neumann边界的Poisson方程
- Matlab数值求解超越方程的根
- matlab ode方程的求解
- 使用matlab求解二维浅水方程的数值解(二)—波浪的折射