% 求解Markov链模型转移概率矩阵P
clear,clc,close all
%% 计算状态转移矩阵
A = [0.4382,0.3933,0.1390,0.0295];
B = [0.4051,0.4185,0.1505,0.0260];
% 非线性优化fmincon
Aeq = kron(eye(4),ones(1,4)); % 等式约束,行和为1
beq = ones(4,1);
lb = zeros(1,16); % 变量上下界
ub = ones(1,16);
x0 = ones(1,16)*0.1; % 初始解guess
[x, fval] = fmincon(@fun,x0,[],[],Aeq,beq,lb,ub);
x = reshape(x,[],4)';
disp('转移概率矩阵:');disp(x)
%% 计算未来年份
year = 15:5:40;
n = length(year);
data = zeros(n,4);
for i = 1:n
data(i,:) = A*x^year(i);
end