MATLAB은 Lyapunov 방정식을 풀었습니다.
1. 연속 리아푸노프 방정식
연속 리아푸노프 방정식은
라푸노프 방정식의 근원이자 미분방정식의 안정이론으로 표현될 수 있는데, 여기서 C 는 양의 정부호 대칭 n ×n 정사각 행렬이어야 하며, 해는 다음과 같이 증명될 수 있습니다.
gt; A=[1 2 3; 7 8 0]
A =
1 2 3
4 5 6
7 8 0
gt;C=-[10 5 4 7 9]
C; =
-10 -5 -4
-5 -6 -7
-4 -7 -9
gt;gt ; X=lyap(A, C)
0.1111
2. 리아푸노프 방정식의 해석적 해
크론세커 곱의 표현 방법을 사용하면 랴푸노프 방정식은 다음과 같습니다. 다음과 같이 작성됩니다.
function x=lyap2(A, C )
Lyapunov 방정식의 기호 해
n=size(C, 1);
A0=kron(A, 눈(n)) kron(눈(n), A);
c=C(:);
x0=-inv (A0)*c;
x=reshape(x0 , n, n)
예
gt;gt;A=[1 2 3;4 5 6;7 8 0];
gt;gt;C=-[10 5 4; 5 4 7 9]
gt; (sym(A), Sym(C))
x =
[ -71/18, 35/9, 7/18]
[ 35 /9, -25/9, 2/9]
[7/18, 2/9, -1/9]
3. 이산 랴푸노프 방정식
이산 랴푸노프 방정식의 일반적인 형태는 다음과 같습니다
Matlab 방정식을 풀기 위해 dlyap() 함수가 직접 제공됩니다. 연속 실베스터 방정식으로 변환할 수 있습니다.
실베스터 방정식은 일반화된 리아푸노프 방정식이므로 이산 리아푸노프 방정식은 다음 방법을 사용하여 풀 수도 있습니다.
B=-inv(A' )
C=Q*inv(A' )
X=lyap(A, B, C)
다음은 위에서 설명한 내용을 요약한 것입니다. 지식 포인트:
X=lyap(A, C) 연속 리아푸노프 방정식의 수치해
X=lyap2(A, C) 연속 리아푸노프 방정식의 기호해
X=lyap(A, B, C) 일반화된 리아푸노프 방정식, 실베스터 방정식
X=dlyap(A, Q) or X=lyap(A,-inv(A'), Q*inv( A')) 이산 랴푸노프 방정식
실베스터 방정식 Matlab 실브를 해결하다
에스테르 방정식의 일반적인 형태는 다음과 같습니다.
이 방정식은 일반화된 리아푸노프 방정식이라고도 하며, 여기서 A는 n×n 정사각형 행렬이고, B는 m×m 정사각형 행렬이며, X와 C는 n입니다. ×m 행렬.
Matlab 제어 도구 상자는 이 방정식을 직접 풀 수 있는 lyap() 함수를 제공합니다.
A=[8 1 6 3 4 9 2]
B=[2 3 ; 4 5]
C=[1 2;3 4;5 6]
X=lyap(A, B, C)
A =< / p>
8 1 6
3 5 7
4 9 2
B =
2 3
4 5
C =
1 2
3 4
5 6
X =
0.2011 0.2016
0.0393 0.1554
-0.6428 -0.8966
마찬가지로 우리는 크로네커 곱셈 형식을 사용하여 원본을 수행합니다. 방정식 다음과 같이 변경됩니다
실베스터 방정식의 분석적 해 함수는 다음과 같이 작성될 수 있습니다.
function X=lyap3(A, B, C)
분석적 실베스터 방정식의 해
p>
동적으로 다시 작성됨
추가 정보
If nargin==2, C=B'; ;end
[nr, nc]=size(C);
A0=kron(A, eye(nc)) kron(eye(nr), B');
시도해보세요
C1=C';
X0=-inv(A0)*C1(:);
X=reshape( X0,nc,nr);
catch
error('Matlabsky가 여러분에게 상기시켜 줍니다: 행렬은 특이 행렬입니다!');
end
위 데이터를 사용하여 분석 솔루션을 테스트합니다.
gt;gt;X=lyap3(sym(A),B,C)
9119/14186]
[ 11441/56744, 8817/56744, -50879/56744]
Riccati 방정식의 Matlab 솔루션 Riccati 방정식은 잘 알려진 2차 행렬 형식이며 일반적인 형식은 다음과 같습니다.
행렬의 2차 항이 포함되어 있기 때문입니다. >
A=[-2 1 -3;-1 0 -2;0 -1 -2]
B=[2 2 -2;-1 5 -2;-1 1 2 ]
C=[5 -4 4; 1 0 4 1 -1 5]
X=are(A , B, C)
A =
-2 1 -3
-1 0 -2
0 -1 -2
B =
2 2 -2
-1 5 -2
-1 1 2
C =
5 -4 4
1 0 4
1 -1 5
X =
>
0.9874 -0.7983 0.4189
0.5774 -0.1308 0.5775
-0.2840 -0.0730 0.6924
MATLAB을 사용하여 랴푸노프 지수를 해결하는 방법에 필요한 LOGISTIC 분석 및 계산 데이터는 초기값에 대한 민감도를 설명하는 데 사용됩니다. 다음은 LYAPUNOV 프로그램을 구하고 싶습니다.
clc
clear
모두 닫기
lambda = 3:5e-4:4;
x = 0.4*ones(1, length(lambda))
N1 = 400; 이전 반복 지점 수
N2 = 100; 후속 반복 지점 수
f = zeros(N1 N2, length(lambda))
p>for i = 1 :N1 N2
x = 람다 .* x .* (1 - x)
f(i, :) = x; /p>
끝
끝
p>
f = f(N1 1: 끝,:)
plot(lambda, f, 'k.', 'MarkerSize', 1)
xlabel( '\lambda')
ylabel('x');
읽기 천천히, 매우 유용합니다