首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MATLAB求解同质系统

用MATLAB求解同质系统
EN

Stack Overflow用户
提问于 2013-10-23 17:37:20
回答 2查看 2.6K关注 0票数 2

给出了A*x=b在MATLAB中的通解。

代码语言:javascript
复制
x=A\b

例如

代码语言:javascript
复制
A = [2 -1 1; 1 2 3; 3 0 -1]

A =

     2    -1     1
     1     2     3
     3     0    -1

b = [8; 9; 3]

b =

     8
     9
     3

x = A\b

x =

    2.0000
   -1.0000
    3.0000

那么系统A*x=0的解决方案呢?请帮帮我

奇异矩阵的检验

代码语言:javascript
复制
A=[1 2 3;2 1 4;3 3 7]

A =

     1     2     3
     2     1     4
     3     3     7

>> det(A)

ans =

     0
b=[0;0;0];
>> linsolve(A,b)
Warning: Matrix is close to singular or badly scaled.
         Results may be inaccurate. RCOND = 1.903239e-017.

ans =

     0
     0
     0

@Robert P.

这是对的吗?

代码语言:javascript
复制
A=[2 3 1;-1 3 1;1 6 2]

A =

     2     3     1
    -1     3     1
     1     6     2

>> det(A);
>> det(A)

ans =

     0

>> [U S V]=svd(A);
>> x=V(:,end);
>> A*x

ans =

  1.0e-015 *

    0.2220
    0.2220
    0.4441
EN

回答 2

Stack Overflow用户

发布于 2013-10-23 17:48:42

代码语言:javascript
复制
A = [2 -1 1; 1 2 3; 3 0 -1]
b = [0; 0; 0]
x = A\b

假设"0“代表的是零向量,而不是标量。

票数 2
EN

Stack Overflow用户

发布于 2013-10-23 17:51:22

好吧,在你的例子中:

代码语言:javascript
复制
>> A = [2 -1 1; 1 2 3; 3 0 -1]

A =

     2    -1     1
     1     2     3
     3     0    -1

>> b = [0; 0; 0]

b =

     0
     0
     0

>> x = A\b

x =

     0
     0
     0

或者您可以使用linsolve

代码语言:javascript
复制
>> linsolve(A,b)

ans =

     0
     0
     0

但是如果det(A==0),您应该使用特征向量对应于零特征值,如下所示:

代码语言:javascript
复制
>> A = [2 -1 1; 1 2 3; 3 0 -1]

A =

     2    -1     1
     1     2     3
     3     0    -1

>> b = [0; 0; 0]

b =

     0
     0
     0

>> [v m] = eig(A)

v =

    1.0000    0.4472         0
         0    0.8944         0
         0         0    1.0000


m =

     0     0     0
     0     2     0
     0     0     3

你将有无限多的解,每一个与[1 0 0]平行的向量都是一个解。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19548611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档