/*
1. 2銘柄の過去のデータを入力する
2. 2銘柄の期待収益額を予測する( y=a+bx)
3. 2銘柄の分散を推定する
4. 銘柄間の相関係数を計算する
5. 銘柄ごとの投資比率を決定する
6. 期待収益率を算出する

*/

#include <stdio.h>
#include <math.h>

main()
{
 float kabuka[2][5]={3.23,3.33,3.28,3.47,3.50,0.590,0.567,0.580,0.525,0.510};

 float a[2],b[2],bar[2]={0,0};
 float sumx[2]={0,0},sumy[2]={0,0},sumxx[2]={0,0},sumyy[2]={0,0},sumxy[2]={0,0},sumy1y2=0;
 float sokan,hiritu,exkabuka[2],rieki[2];
 int i,j,yosokuki,n=5;

 printf("*****入力データの表示*******\n");
 for(i=0;i<2;i++){
  printf("会社=%d\n",i);
  for(j=0;j<n;j++){
   printf("株価%d期=%7.4f\n",j,kabuka[i][j]);
   sumx[i]=sumx[i]+(j+1);
   sumy[i]=sumy[i]+kabuka[i][j];
   sumxx[i]=sumxx[i]+(j+1)*(j+1);
   sumyy[i]=sumyy[i]+kabuka[i][j]*kabuka[i][j];
   sumxy[i]=sumxy[i]+(j+1)*kabuka[i][j];
    }
  }
 printf("*******分散********\n");
 for(i=0;i<2;i++){
  bar[i]=(sumyy[i]-n*(sumy[i]/n)*(sumy[i]/n))/(n-1);
  printf("var=%f\n",bar[i]);
  }
 for(j=0;j<n;j++){
  sumy1y2=sumy1y2+kabuka[0][j]*kabuka[1][j];
 }
/*回帰係数の算出*/
 for(i=0;i<2;i++){
  printf("会社 NO=%d,",i);
   b[i]=(n*sumxy[i]-sumx[i]*sumy[i])/(n*sumxx[i]-sumx[i]*sumx[i]);
   a[i]=(sumy[i]-b[i]*sumx[i])/n;
   printf("回帰式 Y=%7.4f+%7.4f*X\n", a[i],b[i]);
  }
/*株価の予測*/
 printf("予測期を入力=");
 scanf("%d", &yosokuki);
 for(i=0;i<2;i++){
  printf("会社 NO=%d\n",i);
  exkabuka[i]=a[i]+b[i]*yosokuki;
  printf("予測株価=%7.4f,",exkabuka[i]);
  rieki[i]=exkabuka[i]-kabuka[i][4];
  printf("収益=%7.4f\n", rieki[i]);
  }
/*相関係数の算出*/
 sokan=(5*sumy1y2-sumy[0]*sumy[1])/sqrt((5*sumyy[0]-sumy[0]*sumy[0])*(5*sumyy[1]-sumy[1]*sumy[1]));
 printf("相関係数=%5.4f\n", sokan);
 hiritu=(bar[1]-sokan*sqrt(bar[0]*bar[1]))/(bar[0]+bar[1]-2*sokan*sqrt(bar[0]*bar[1]));
 printf("A社の分配比率=%5.4f, B社の分配比率=%5.4f\n",hiritu, 1-hiritu);
}


[出力結果]
*****入力データの表示*******
会社=0
株価0期= 3.2300
株価1期= 3.3300
株価2期= 3.2800
株価3期= 3.4700
株価4期= 3.5000
会社=1
株価0期= 0.5900
株価1期= 0.5670
株価2期= 0.5800
株価3期= 0.5250
株価4期= 0.5100
*******分散********
var=0.013967
var=0.001229
会社 NO=0,回帰式 Y= 3.1580+ 0.0680*X
会社 NO=1,回帰式 Y= 0.6150+-0.0202*X
予測期を入力=7
会社 NO=0
予測株価= 3.6340,収益= 0.1340
会社 NO=1
予測株価= 0.4736,収益=-0.0364
相関係数=-0.9958
A社の分配比率=0.2284, B社の分配比率=0.7716



Back to C Language

Google




BLOG
PICASAWEB
Panoramio


REF:


Cプログラミングによる経済・経営問題の解決法 土田 美廣