【问题标题】:MATLAB eigenvalue from scratch从零开始的 MATLAB 特征值
【发布时间】:2018-02-11 17:56:22
【问题描述】:

我对 MATLAB 不太熟悉,我最近才开始使用它,需要帮助解决我遇到的一些问题。

a = input('Skriv inn en verdi for a: ');
b = input('Skriv inn en verdi for b: ');
c = input('skriv inn en verdi for c: ');
d = input('Skriv inn en verdi for d: ');
 A = [a b; c d]

 %Tester om matrisen er rektangulær
 [na, ma] = size(A);
 if na ~= ma
    disp('ERROR'); 
    return
 end

syms lambda
det =((A(1,1)-lambda)*(A(2,2)-lambda))-(A(1,2)*A(2,1))

 %Currently under development
 e1 = (t + sqrt(t^2 - 4*n*d))/2;
 e2 = (t - sqrt(t^2 - 4*n*d))/2;
if A ~= 0
   x1 = [a-e1; b];

end

当我输入 1 作为 a b c 和 d 的值时,我得到了这个

Skriv inn en verdi for a: 1
Skriv inn en verdi for b: 1
skriv inn en verdi for c: 1
Skriv inn en verdi for d: 1

A =

 1     1
 1     1


det =

(lambda - 1)^2 - 1

我希望它写成 lambda^2 + 2lambda +- (c) = 0 (我不知道如何将整个方程设置为 = 0

【问题讨论】:

  • 符号工具箱里不是有solve吗?我没有使用过这个工具箱,但这是一个假设。但是,您最好手工写出数学。 2x2 矩阵并不难!
  • 那么问题是你想打印lambda^2 + 2lambda +- (c) = 0,还是想解决?
  • @CrisLuengo 我知道手动求解 2x2 矩阵很容易,但这是我教科书中的一个问题,我必须手动找到一种方法来查找特征值而不使用 rref() eig( ) 等等.. 用 matlab
  • @ViG 我希望它能够打印它而不是 (Lambda -1)^2 就像我选择每个值都为 1 我会得到 lambda^2 + 2lambda = 0,但我不知道为什么将其打印为 (lambda -1)^2 - 1 它不应该只是以我想要的形式打印出来吗?我想我知道如何解决它。
  • @user8700908 我的意思是手动写出方程组,而不是依赖符号工具箱。计算非常简单。你就是这样学习的! :)

标签: matlab


【解决方案1】:

要将(lambda - 1)^2 - 1 重写为lambda^2 + 2lambda +- (c),您可以使用expand。如果您希望能够以等式lambda^2 + 2lambda +- (c) = 0 的形式进一步使用det,那么您需要一个双重=

det = expand(((A(1,1)-lambda)*(A(2,2)-lambda))-(A(1,2)*A(2,1))) == 0

打印时还会有一个双精度=。如果您需要det 仅用于打印目的,那么您可以使用:

det = expand(((A(1,1)-lambda)*(A(2,2)-lambda))-(A(1,2)*A(2,1)));
disp([char(det), ' = 0'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 2015-03-14
    • 2011-03-18
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多