Advertisement
AndrzejO

zad2

May 21st, 2020
2,758
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scilab 2.27 KB | None | 0 0
  1. clc; clear;
  2. ZX = zeros(4, 101);
  3. ZY = zeros(4, 101);
  4. A0 = zeros(5, 101);
  5. a = 0;
  6. b = 0;
  7. for i = 1:101
  8.     x = (i-1)/2;
  9.     ZX(1,i) = x;
  10.    
  11.     if x <= 20
  12.         uA = 1;
  13.     elseif x >= 20 & x <= 30
  14.        uA=(30-x) / (30-20);
  15.      else
  16.        uA = 0;  
  17.      end
  18.      ZX(2,i) = uA;
  19.      
  20.      if x <= 20 then
  21.        uB = 0;
  22.      elseif x <= 30 & x >= 20
  23.          uB = (x-20) / (30-20);  
  24.      elseif x == 30
  25.          uB = 1
  26.      elseif x >= 30 & x <= 40
  27.          uB = (40-x) / (40-30);
  28.      else
  29.          uB = 0;
  30.      end
  31.      ZX(3,i) = uB;
  32.      
  33.     if x <= 30 then
  34.        uC = 0;
  35.     elseif x >= 30 & x <= 40
  36.        uC=(x-30) / (40-30);
  37.      else
  38.          uC = 1;    
  39.      end
  40.      ZX(4,i)=uC;
  41. end
  42.  
  43. //podpunkt B
  44. for i=1:101
  45.     x=i-1;
  46.     ZY(1,i)=x;
  47.     A0(1,i)=x;
  48.    
  49.     if x >= 0 & x <= 50
  50.        uD=(50-x) / (50-0);
  51.      else
  52.        uD = 0;  
  53.      end
  54.      ZY(2,i) = uD;
  55.      
  56.      if x <= 20 then
  57.        uE = 0;
  58.      elseif x <= 60 & x >= 20
  59.          uE=(x-20) / (60-20);  
  60.      elseif x <= 80 & x >= 60
  61.          uE= (80-x) / (80-60);    
  62.      end
  63.      ZY(3,i)=uE;
  64.  
  65.     if x <= 60 then
  66.        uF = 0;
  67.      elseif x <= 100 & x >= 60
  68.          uF= (x-60) / (100-60);    
  69.      else x <= 100
  70.          uF = 1;        
  71.      end
  72.      ZY(4,i) = uF;
  73. end
  74.  
  75.  
  76.  
  77. subplot(5,1,1)
  78. plot(ZX(1,:), ZX(2,:));
  79. plot(ZX(1,:), ZX(3,:));
  80. plot(ZX(1,:), ZX(4,:));
  81. mtlb_axis([0 50 0 1.2])
  82.  
  83. subplot(5,1,2)
  84. plot(ZY(1,:), ZY(2,:));
  85. plot(ZY(1,:), ZY(3,:));
  86. plot(ZY(1,:), ZY(4,:));
  87. mtlb_axis([0 100 0 1.2])
  88.  
  89. //podpunkt c
  90. xx = input("podaj zmienna lingwistyczna: ");
  91. xx = 2*xx+1;
  92. uA = ZX(2,xx);
  93. uB = ZX(3,xx);
  94. uC = ZX(4,xx);
  95.  
  96. //podpunkt d
  97. for i=1:101
  98.     //R1
  99.     if uA>0 then A0(2,i) = min(uA, ZY(2,i)); end
  100.     //R2
  101.     if uB>0 then A0(3,i) = min(uB, ZY(3,i)); end
  102.     //R3
  103.     if uC>0 then A0(4,i) = min(uC, ZY(4,i)); end
  104. end
  105. disp(xx);
  106.  
  107. subplot(5,1,3);
  108. plot(A0(1,:),A0(2,:),"r");
  109. plot(A0(1,:),A0(3,:),"g");
  110. plot(A0(1,:),A0(4,:),"b");
  111. mtlb_axis([0 100 0 1.2]);
  112.  
  113. //podpunkte
  114. for i=1:101
  115.     A0(5,i)=max(A0(2,i),A0(3,i),A0(4,i));
  116. end
  117.  
  118. subplot(4,1,4);
  119. plot(A0(1,:),A0(5,:),"r");
  120. mtlb_axis([0 100 0 1.2]);
  121.  
  122. //podpunkt f
  123. for i=1:101
  124.         a=a+A0(1,i)*A0(5,i)
  125.         b=b+A0(5,i)        
  126. end
  127.         y=a/b;
  128. disp(y);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement