2020年数学建模C题代码

d  源论文   点击

%chulisj.m
%第一步:数据预处理
y_jin_jine=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',2,'E2:E210948');
y_jin_shuie=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',2,'F2:F210948');
y_xiao_jine=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',3,'E2:E162485');
y_xiao_shuie=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',3,'F2:F162485');
 %读取发票状态
jin_zf=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',2,'H2:H210948'); 
xiao_zf=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',3,'H2:H210948');

y_jin_qy=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',2,'A2:A210948');
y_xiao_qy=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',3,'A2:A162485');

n_jin_jine=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',3,'E2:E395176');
n_jin_shuie=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',3,'F2:F395176');
n_xiao_jine=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',2,'E2:E330836');
n_xiao_shuie=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',2,'F2:F330836');
n_jin_zf=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',3,'H2:H395176');
n_xiao_zf=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',2,'H2:H330836');

n_jin_qy=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',3,'A2:A395176');
n_xiao_qy=xlsread('附件2:302家无信贷记录企业的相关数据.xlsx',2,'A2:A330836');

%有信贷——数据处理
if jin_zf==0   %发票状态为作废时,进项金额、税额都作废
    y_jin_jine1=0;
    y_jin_shuie1=0;
else
    y_jin_jine1=y_jin_jine;     
    y_jin_shuie1=y_jin_shuie;
    if y_jin_jine<0     %负数发票时,进项金额为0,税额不变,供以后抵扣
    y_jin_jine1=0;
    end
end

if xiao_zf==0
    y_xiao_jine1=0;
    y_xiao_shuie1=0;
else
    y_xiao_jine1=y_xiao_jine;
    y_xiao_shuie1=y_xiao_shuie;    
    if y_xiao_jine<0          %负数发票时,销项金额为0,税额不变,供以后抵扣
    y_xiao_jine1=0;
    
    end
end
       
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_jin_jine1,1, 'B2:B210948');
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_jin_shuie1,1, 'C2:C210948');
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_xiao_jine1,2, 'B2:B162485');
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_xiao_shuie1,2, 'C2:C162485');

%无信贷数据处理
if n_jin_zf==0
    n_jin_jine1=0;
    n_jin_shuie1=0;
else
    n_jin_jine1=n_jin_jine;
    n_jin_shuie1=n_jin_shuie;
    if n_jin_jine<0 
    n_jin_jine1=0;
    end
end

if n_xiao_zf==0
    n_xiao_jine1=0;
    n_xiao_shuie1=0;
else
    n_xiao_jine1=n_xiao_jine;
    n_xiao_shuie1=n_xiao_shuie;
    if n_xiao_jine<0 
    n_xiao_jine1=0;
    end
end

xlswrite('处理:302家无信贷记录企业的相关数据.xlsx',n_jin_jine1,1, 'B2:B395176');
xlswrite('处理:302家无信贷记录企业的相关数据.xlsx',n_jin_shuie1,1, 'C2:C395176');
xlswrite('处理:302家无信贷记录企业的相关数据.xlsx',n_xiao_jine1,2, 'B2:B330836');
xlswrite('处理:302家无信贷记录企业的相关数据.xlsx',n_xiao_shuie1,2, 'C2:C330836');

%求各企业总收益
%有信贷企业
y_zong=zeros(123,1);
y_jin_zong=zeros(123,1);
y_xiao_zong=zeros(123,1);

for i=1:123
    for j=1:210947
        if y_jin_qy(j)==i
        y_jin_zong(i)=sum(y_jin_jine1(j)+y_jin_shuie1(j));
        end
    end
end
for i=1:123
    for k=1:162484
        if y_xiao_qy(k)==i
            y_xiao_zong(i)=sum(y_xiao_jine1(k)+y_xiao_shuie1(k));
        end
    end
end
for i=1:123
    y_zong(i)=y_xiao_zong(i)-y_jin_zong(i);    %总收益=销项总-进项总
end
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_zong,3, 'B2:B124');


%无信贷企业
n_zong=zeros(302,1);
n_jin_zong=zeros(302,1);
n_xiao_zong=zeros(302,1);
for i=124:425
    for j=1:395175
        if n_jin_qy(j)==i
        n_jin_zong(i-123)=sum(n_jin_jine1(j)+n_jin_shuie1(j));
        end
    end
end
for i=124:425
    for k=1:330835
        if n_xiao_qy(k)==i
            n_xiao_zong(i-123)=sum(n_xiao_jine1(k)+n_xiao_shuie1(k));
        end
    end
end
for i=1:302
    n_zong(i)=n_xiao_zong(i)-n_jin_zong(i);
end
xlswrite('处理:302家无信贷记录企业的相关数据.xlsx',n_zong,3, 'B2:B303');


%risksy.m
%收益归一化处理,求收益信任值
y_shouyi=xlsread('处理:123家有信贷记录企业的相关数据1.xlsx',3,'B2:B124');
n_shouyi=xlsread('处理:302家无信贷记录企业的相关数据.xlsx',3,'B2:B303');
y_max=max(y_shouyi);
y_min=min(y_shouyi);

n_max=max(n_shouyi);
n_min=min(n_shouyi);

y_rs=zeros(123,1);
n_rs=zeros(302,1);
for i=1:123
    y_rs(i)=(y_shouyi(i)-y_min)/(y_max-y_min);
end
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_rs,3, 'C2:C124');


for k=1:302
    n_rs(k)=(n_shouyi(k)-n_min)/(n_max-n_min);
end
xlswrite('处理:302家无信贷记录企业的相关数据.xlsx',n_rs,3, 'C2:C303');
xlswrite('处理:302家无信贷记录企业的相关数据.xlsx',1-n_rs,3, 'D2:D303');

%riskxy.m
%信誉等级数据预测,求信誉信任值
[num,str]=xlsread('附件1:123家有信贷记录企业的相关数据.xlsx',1,'C2:C124');
y_xy=zeros(123,1);
%信誉等级ABCD对应的信誉数据分别为[0.75,1],[0.5,0.75],[0.25,0.5],[0,0.25]区间的随机数
for i=1:123
    if strcmp(str(i),'A')
        y_xy(i)=0.75+0.25*rand(1);
    end
    if strcmp(str(i),'B')
        y_xy(i)=0.5+0.25*rand(1);
    end
    if strcmp(str(i),'C')
        y_xy(i)=0.25+0.25*rand(1);
    end
    if strcmp(str(i),'D')
        y_xy(i)=0+0.25*rand(1);
    end
end
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_xy,3, 'D2:D124');


%riskall.m
%加权求总信任值及风险
y_risksy=xlsread('处理:123家有信贷记录企业的相关数据1.xlsx',3,'C2:C124');
y_riskxy=xlsread('处理:123家有信贷记录企业的相关数据1.xlsx',3,'D2:D124');

y_risk=zeros(123,1);

for i=1:123
    y_risk(i)=0.6*y_risksy(i)+0.4*y_riskxy(i);%收益信任值和信誉信任值的权重为6:4
end
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',y_risk,3, 'E2:E124');
xlswrite('处理:123家有信贷记录企业的相关数据1.xlsx',1-y_risk,3, 'F2:F124');


%ls_nihe.m
%利率与流失率的拟合函数
x = xlsread('附件3:银行贷款年利率与客户流失率关系的统计数据.xlsx', 'sheet1', 'A3:A31');
y1=xlsread('附件3:银行贷款年利率与客户流失率关系的统计数据.xlsx', 'sheet1', 'B3:B31'); 
y2=xlsread('附件3:银行贷款年利率与客户流失率关系的统计数据.xlsx', 'sheet1', 'C3:C31'); 
y3=xlsread('附件3:银行贷款年利率与客户流失率关系的统计数据.xlsx', 'sheet1', 'D3:D31');
p1=polyfit(x,y1,2);
p2=polyfit(x,y2,2);
p3=polyfit(x,y3,2);

figure(1);
draw(p1,x,y1);

function [fitresult, gof] = createFit1(x, y)
%CREATEFIT1(X,Y)
%  Create a fit.
%
%  Data for 'untitled fit 1' fit:
%      X Input : x
%      Y Output: y
%  Output:
%      fitresult : a fit object representing the fit.
%      gof : structure with goodness-of fit info.
%
%  另请参阅 FIT, CFIT, SFIT.

%  由 MATLAB 于 17-Aug-2023 09:26:20 自动生成


%% Fit: 'untitled fit 1'.
[xData, yData] = prepareCurveData( x, y );

% Set up fittype and options.
ft = fittype( 'exp2' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.StartPoint = [0.903090038453583 0.560082104254179 -2.28174716847795 -23.1065744517619];

% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );

% Plot fit with data.
figure;
h = plot( fitresult, xData, yData );
set(h, 'LineWidth', 1);
legend( h, '原始数据', '拟合曲线', 'Location', 'southeast',FontSize=16);
% Label axes
   set(gca,'FontName','Times New Rome','FontSize',16);
    xlabel('贷款年利率','FontName','宋体','FontSize',18);
    ylabel('客户流失率','FontName','宋体','FontSize',18);
 set(gcf,'Units','centimeters','Position',[5 5 20 12]);

clc
close all
clc;clear
format long
data1=xlsread("C:\Users\35129\Desktop\暑假集训\2020C(6)\附件22.xlsx");
data2=xlsread("C:\Users\35129\Desktop\暑假集训\2020C(6)\附件1:123家有信贷记录企业的相关数据.xlsx",'进项发票信息');
data3=xlsread("C:\Users\35129\Desktop\暑假集训\2020C(6)\附件1:123家有信贷记录企业的相关数据.xlsx",'销项发票信息');
resultl=zeros(123,11);%记录的结果保存在resultl中
for i=1:123
    i=1;
    m=find(data2(:,1)==i);%索引企业的位置数据  标记
    re=data2(m(1,1):max(m),:);%re是所有同一家企业的数据
    re=sortrows(re,[3,4,5]);%按年月日来排序
    void=find(re(:,10)==0);%标记   报废发票的位置
    v=size(void,1);%报废发票的个数
    valid=size(m,1)-void;%有效的票的个数
    %删除完无用发票
    mm=find((re(:,10)==1)&(re(:,9)>0));%标记出有用的发票
    ree=re(mm,:);%筛出报废的发票
    ree=sortrows(ree,[3,4,5]);%再次排序

    %smonth(1,:)=ree(1,3:4);%记录起始年月
    %smonth(2,:)=ree(size(ree,1),3:4);%最后一个
    % length=(((smonth(2,1)-2017)*12+smonth(2,2))-((smonth(1,1)-2017)*12+smonth(1,2)))+1;%计算月数


    up=data2(m(1,1):max(m),6);%消费  单位总和
    s=numel(up);%交易次数
    h=size(ree);
    u=numel(unique(up));%求上游企业的数量  unique表示不相同的个数 numel统计个数
    resultl(i,1)=i;%表示企业代号

       b=zeros(12,1);
       qq=find(ree(:,3)==2017);
       kk=ree(qq(1,1):max(qq),:);
       for j=1:12
       aa=find(kk(:,4)==j);
       b(j,1)=sum(ree(aa(1,1):max(aa),9));
       end

end
 

clc
close all
clc;clear
format long
data=xlsread("C:\Users\35129\Desktop\暑假集训\2020C(6)\附件1:123家有信贷记录企业的相关数据.xlsx",'进项发票信息');
resultl=zeros(123,11);%记录的结果保存在resultl中
for i=1:123
    i=1;
    m=find(data(:,1)==i);%索引企业的位置数据  标记
    re=data(m(1,1):max(m),:);%re是所有同一家企业的数据
    re=sortrows(re,[3,4,5]);%按年月日来排序
    void=find(re(:,10)==0);%标记   报废发票的位置
    v=size(void,1);%报废发票的个数
    valid=size(m,1)-void;%有效的票的个数
    %删除完无用发票
    mm=find((re(:,10)==1)&(re(:,9)>0));%标记出有用的发票
    ree=re(mm,:);%筛出报废的发票
    ree=sortrows(ree,[3,4,5]);%再次排序
    %smonth(1,:)=ree(1,3:4);%记录起始年月
    %smonth(2,:)=ree(size(ree,1),3:4);%最后一个
    % length=(((smonth(2,1)-2017)*12+smonth(2,2))-((smonth(1,1)-2017)*12+smonth(1,2)))+1;%计算月数


    up=data(m(1,1):max(m),6);%消费  单位总和
    s=numel(up);%交易次数
    u=numel(unique(up));%求上游企业的数量  unique表示不相同的个数 numel统计个数
    resultl(i,1)=i;%表示企业代号
  
    nian1=find(ree(:,3)==2016);
    A=ree(nian1,4);
    if numel(unique(A))~=1
    count = hist(A,unique(A));
    else 
        count=numel(nian1);
    end
    nian2=find(ree(:,3)==2017);
    A=ree(nian2,4);
    count1 = hist(A,unique(A));
    count=[count,count1];

    nian3=find(ree(:,3)==2018);
    A=ree(nian3,4);
    count2 = hist(A,unique(A));
    count=[count,count2];

    nian4=find(ree(:,3)==2019);
    A=ree(nian4,4);
    count3 = hist(A,unique(A));
    count=[count,count3];

   nian5=find(ree(:,3)==2020);
    A=ree(nian5,4);
    if numel(nian5)~=0
    count4 = hist(A,unique(A));
    count=[count,count4];
    end
    s1=0;
    for j=1:numel(count)-1
        s1=s1+(count(j+1)-count(j))/count(j);
    end
      resultl(i,3)=12*s/ numel(count);%业务率
s1=s1/numel(count)*12;
    resultl(i,4)=s1;%年均变化率
    resultl(i,7)=numel(count);
end

data1=xlsread("C:\Users\35129\Desktop\暑假集训\2020C(6)\附件1:123家有信贷记录企业的相关数据.xlsx",'销项发票信息');
for i=1:123
    
    m=find(data1(:,1)==i);%索引企业的位置数据  标记
    re=data1(m(1,1):max(m),:);%re是所有同一家企业的数据
    re=sortrows(re,[3,4,5]);%按年月日来排序
    void=find(re(:,10)==0);%标记   报废发票的位置
    v=size(void,1);%报废发票的个数
    valid=size(m,1)-void;%有效的票的个数
    %删除完无用发票
    mm=find((re(:,10)==1)&(re(:,9)>0));%标记出有用的发票
    ree=re(mm,:);%筛出报废的发票
    ree=sortrows(ree,[3,4,5]);%再次排序
    %smonth(1,:)=ree(1,3:4);%记录起始年月
    %smonth(2,:)=ree(size(ree,1),3:4);%最后一个
    % length=(((smonth(2,1)-2017)*12+smonth(2,2))-((smonth(1,1)-2017)*12+smonth(1,2)))+1;%计算月数


    up=data1(m(1,1):max(m),6);%消费  单位总和
    s=numel(up);%交易次数
    u=numel(unique(up));%求上游企业的数量  unique表示不相同的个数 numel统计个数
    resultl(i,1)=i;%表示企业代号
  
    nian1=find(ree(:,3)==2016);
    A=ree(nian1,4);
    if numel(unique(A))~=1
    count = hist(A,unique(A));
    else 
        count=numel(nian1);
    end
    nian2=find(ree(:,3)==2017);
    A=ree(nian2,4);
    count1 = hist(A,unique(A));
    count=[count,count1];

    nian3=find(ree(:,3)==2018);
    A=ree(nian3,4);
    count2 = hist(A,unique(A));
    count=[count,count2];

    nian4=find(ree(:,3)==2019);
    A=ree(nian4,4);
    count3 = hist(A,unique(A));
    count=[count,count3];

   nian5=find(ree(:,3)==2020);
    A=ree(nian5,4);
    if numel(nian5)~=0
    count4 = hist(A,unique(A));
    count=[count,count4];
    end
    s1=0;
    for j=1:numel(count)-1
        s1=s1+(count(j+1)-count(j))/count(j);
    end
      resultl(i,5)=12*s/ numel(count);%业务率
s1=s1/numel(count)*12;
    resultl(i,6)=s1;%年均变化率
     resultl(i,8)=numel(count);
end


xlswrite("附件.xlsx",resultl,"A1:K123");

clc
close all
clc;clear
format long
data=xlsread("C:\Users\35129\Desktop\暑假集训\2020C(6)\附件22.xlsx");
ww=zeros(123,4);
aa=find(data(:,2)==2);
qq=data(aa(:,1),3);
junzhi1=mean(qq);
zz1=std(qq);
 

createFit1(x,y1);
createFit1(x,y2);
createFit1(x,y3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

墨墨祺

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

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

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

打赏作者

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

抵扣说明:

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

余额充值