MATLAB学习笔记:二次型

化二次型为标准型

可以用schur和eig实现:

[Q,D]=schur(A)

[Q,D]=eig(A)

其实,A为二次型的矩阵,D为A的特征值构成的对角矩阵,Q为正交矩阵。

>> A=[-2 2 2 2;2 -6 0 0;2 0 -9 3;2 0 3 -9];
>> [Q,D]=schur(A)

Q =

    0.0000   -0.5000   -0.0000   -0.8660
    0.0000    0.5000    0.8165   -0.2887
    0.7071    0.5000   -0.4082   -0.2887
   -0.7071    0.5000   -0.4082   -0.2887


D =

  -12.0000         0         0         0
         0   -8.0000         0         0
         0         0   -6.0000         0
         0         0         0    0.0000

>> [Q D]=eig(A)

Q =

    0.0000   -0.5000   -0.0000   -0.8660
    0.0000    0.5000    0.8165   -0.2887
    0.7071    0.5000   -0.4082   -0.2887
   -0.7071    0.5000   -0.4082   -0.2887


D =

  -12.0000         0         0         0
         0   -8.0000         0         0
         0         0   -6.0000         0
         0         0         0    0.0000

经过正交变换X=QY,二次型化为标准型:f=-12*y1^2-8*y2^2-6*y3^2。


 

>> A=[3 -2;-2 6];
>> D=schur(A)

D =

    2.0000         0
         0    7.0000

二次型的标准型为:f=2*x1^2+7*x2^2。


 

实二次型的定性

>> subplot(2,2,1);
>> ezmesh('3*x1^2-4*x1*x2+6*x2^2');
>> subplot(2,2,2);
>> ezmesh('-5*x1^2+4*x1*x2-2*x2^2');
>> subplot(2,2,3);
>> ezmesh('3*x1^2+4*x1*x2-2*x2^2');
>> subplot(2,2,4);
>> ezmesh('x1^2-6*x1*x2+9*x2^2');
>> grid on

一、正定的

二、负定的

三、不定的

四、半正定的

MATLAB判断实二次型f正定的方法:

1、特征值法

2、顺序主子式法

>> A1=[1 1 -1;1 2 -1;-1 -1 5];
>> d1=eig(A1)

d1 =

    0.3542
    2.0000
    5.6458

>> A2=[1 1 0 0;1 1 1 0;0 1 3 2;0 0 2 2];
>> d2=eig(A2)

d2 =

   -0.3489
    0.6041
    2.0000
    4.7448

第一个正定

第二个不正定
 

用顺序主子式方法判断实二次型的正定性的程序Untitled:

syms t;
A=input('输入矩阵A:');
n=size(A);

for i=1:n
    w(i)=det(A(1:i,1:i));
end
w;
if w>0
    fprintf('因为A的各阶顺序主子式都大于零,所以f是正定的.\n');
else
    fprintf('因为A的各阶顺序主子式都不全大于零,所以f不是正定的.\n');
end


>> Untitled
输入矩阵A:[1 -1 2 1;-1 3 0 -3;2 0 9 -6;1 -3 -6 19]
因为A的各阶顺序主子式都大于零,所以f是正定的.

syms t;
A=input('输入矩阵A:');
n=size(A);

for i=1:n
    w(i)=det(A(1:i,1:i));
end
w
>> Untitled2
输入矩阵A:[1 t 1;t 3 -2;1 -2 3]
 
w =
 
[ 1, 3 - t^2, - 3*t^2 - 4*t + 2]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Encarta1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值