作业帮 > 综合 > 作业

MATLAB编程 这个代码到底是哪儿出错了啊,数据没什么问题,要是回答正确了,继续追加分的,clcclearload s

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/24 10:18:42
MATLAB编程
这个代码到底是哪儿出错了啊,数据没什么问题,要是回答正确了,继续追加分的,
clc
clear
load shuju.txt %原始数据存放在纯文本文件 shuju.txt中
pz=shuju.txt
mu=mean(pz); %求均值
sig=std(pz); %求标准差
rr=corrcoef(pz); %求相关系数矩阵
data=zscore(pz); %数据标准化
n=9; %n是自变量的个数
m=1; %m是因变量的个数
x0=pz(:,1:n);
y0=pz(:,n+1:end);
e0=data(:,1:n);
f0=data(:,n+1:end);
num=size(e0,1); %求样本点的个数
chg=eye(n); %w到w*变换矩阵的初始化
for i=1:n %以下计算w,w*和t的得分向量
matrix=e0'*f0*f0'*e0;
[vec,val]=eig(matrix); %求特征值和特征向量
val=diag(val); %提出对角线元素
[val,ind]=sort(val,'descend');
w(:,i)=vec(:,ind(1)); %提出最大特征值对应的特征向量
w_star(:,i)=chg*w(:,i); %计算w*的取值
t(:,i)=e0*w(:,i); %计算成分ti的得分
alpha=e0'*t(:,i)/(t(:,i)'*t(:,i)); %计算alpja_i
chg=chg*(eye(n)-w(:,i)*alpha'); %计算w到w*的变换矩阵
e=e0-t(:,i)*alpha'; %计算残差矩阵
e0=e;
%以下计算ss(i)的值
beta=[t(:,1:i),ones(num,1)]\f0; %求回归方程的系数
beta(end,:)=[]; %删除回归分析的常数项
cancha=f0-t(:,1:i)*beta; %求残差矩阵
ss(i)=sum(sum(cancha.^2)); %求误差平方和
%以下计算press(i)
for j=1:num
t1=t(:,1:i);
f1=f0;
she_t=t1(j,:);
she_f=f1(j,:); %把舍去的第j个样本点保存起来
t1(j,:)=[];
f1(j,:)=[]; %删除第j个观察值
beta1=[t1,ones(num-1,1)]\f1; %求回归分析的系数
beta1(end,:)=[]; %删除回归分析的常数项
cancha=she_f-she_t*beta1; %求残差向量
press_i(j)=sum(cancha.^2);
end
press(i)=sum(press_i);
if i>1
Q_h2(i)=1-press(i)/ss(i-1);
else
Q_h2(1)=1;
end
if Q_h2(i)
x1=700;x2=1300;x3=0;x4=0,minz=43500
clear;clc;
f=[25 20 30 24];
A=[-1 -1 -1 -1;-1 0 -1 0;0 -1 0 -1];
b=[-2000;-700;-450];
Aeq=[];
beq=[];
xmin=zeros(5,1);
xmax=[];
[x,minz]=linprog(f,A,b,Aeq,beq,xmin,xmax)
x =
1.0e+003 *
0.7000
1.3000
0.0000
0.0000
minz =
4.3500e+004