QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2410|回复: 6
打印 上一主题 下一主题

线性方程组的Matlab解法

[复制链接]
字体大小: 正常 放大

2620

主题

162

听众

1万

积分

升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    跳转到指定楼层
    1#
    发表于 2014-9-17 13:17 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    众所周知,Matlab的全称是Matrixm laboratory,当然对求解线性方程组,对Matlab来说只是小菜一碟了。但悲哀的是好多人还是不会真正使用Matlab来完成该任务,下面我们就说说吧

    考虑下面给定的线性方程
    A*x=b      
    其中A是m*n的矩阵,也就是说有m个方程n个未知数;b为m*p的矩阵,也就是有p组b
    我们做C=[A b]

    由线性代数知识我们知道:
    (1)rank(A)=rank(C)=r时,方程组有解
    若r=n则,方程组有唯一的解
    若r<n则,方程组有无穷解,可以构造出线性方程组的n-r个化零向量xi,原方程组对应的齐次方程组的解可以有xi的线性组合来表示
    (2)rank(A)≠rank(C)时,则方程组无解
    这是只能利用最小二乘求解,得到的解也只能使误差的函数测度|A*x-B|取值最小

    好,下面我们就看看,到底如何使用Matlab实现上面的问题吧

    一、rank(A)=rank(C)=r时

    1.若r=n,此时方程组只有一个解,Matlab的求解命令也相对简单

    直接就是如下格式x=inv(A)*b=A\b即可以解决问题

    游客,如果您要查看本帖隐藏内容请回复

    2.若r<n,此时方程有无穷解,方程组解可以用齐次和特解相加组合而成。

    齐次解是由原方程组齐次方程组的n-r个化零向量xi线性组合而成,对于化零向量Matlab可以直接使用null()命令来实现,对于特解我们即可以观察,也可以用x0=A\b得到,只不过此时的x0是一个由最小二乘的得来的
    游客,如果您要查看本帖隐藏内容请回复

    我们在线性代数中解决这种问题的方法是,先对矩阵进行按行变换(或者说高斯消去),直到可以看出结果为止。其实MATLAB中也为我们准备好了这个函数,它就是rref()
    >> A=magic(3),B=[1 2 3]',C=[A B],c_rref=rref(C)

    A =

    8 1 6
    3 5 7
    4 9 2


    B =

    1
    2
    3


    C =

    8 1 6 1
    3 5 7 2
    4 9 2 3


    c_rref =

    1.0000 0 0 0.0500
    0 1.0000 0 0.3000
    0 0 1.0000 0.0500

    %此时我们很容易看出方程的根,x1=0.5,,x2=0.3,x3=05,到底是不是呢?我们下面验证下

    >> A\B
    ans =
        0.0500
        0.3000
        0.0500
    复制代码
    二、rank(A)≠rank(C)时

    由于方程个数多于未知数个数,故此时方程组无解,这时我们一般喜欢使用最小二乘法救出,一个使误差的函数测度|A*x-B|取值最小的解,Matlab的命令也相当简单x=pinv(A)*B
    >> A=round(rand(5,3)*10);B=round(rand(5,3)),C=[A B],[rank(A),rank(C)]

    B =
    1 1 0
    0 0 0
    0 1 1
    1 0 0
    1 0 1

    C =
    9 5 9 1 1 0
    3 4 3 0 0 0
    2 8 8 0 1 1
    3 6 8 1 0 0
    6 5 4 1 0 1

    ans =
    3 5

    %说明rank(A)=3≠rank(C)=5,故无解

    >> x=pinv(A)*B
    x =
    0.1070 -0.0101 0.0256
    -0.0449 -0.0573 0.2543
    0.0556 0.1256 -0.1710
    复制代码

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    377

    主题

    148

    听众

    5937

    积分

    升级  18.74%

  • TA的每日心情
    奋斗
    2016-7-14 13:54
  • 签到天数: 219 天

    [LV.7]常住居民III

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2015年美赛冲刺

    群组高等数学串讲

    群组2014第三期英语写作

    群组SAS数据分析大赛冲刺

    群组2015美赛优秀论文解析

    回复

    使用道具 举报

    61

    主题

    7

    听众

    1127

    积分

    数学建模

  • TA的每日心情
    开心
    2024-2-3 09:52
  • 签到天数: 171 天

    [LV.7]常住居民III

    群组高等数学课程学习答疑

    群组中学生数学建模(HIMC

    群组小波/PDE/图像分割

    群组专套(升)本 数学答疑

    群组数学建摸协会

    回复

    使用道具 举报

    0

    主题

    1

    听众

    3

    积分

    升级  60%

    该用户从未签到

    回复

    使用道具 举报

    0

    主题

    1

    听众

    3

    积分

    升级  60%

    该用户从未签到

    回复

    使用道具 举报

    fsagfefq        

    0

    主题

    9

    听众

    32

    积分

    升级  28.42%

  • TA的每日心情
    开心
    2017-3-27 16:58
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    da

    社区QQ达人

    回复

    使用道具 举报

    2620

    主题

    162

    听众

    1万

    积分

    升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-23 05:45 , Processed in 0.505677 second(s), 90 queries .

    回顶部