Advertisement
Guest User

Untitled

a guest
Mar 26th, 2020
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.69 KB | None | 0 0
  1. %очистка рабочего пространства
  2. clear all;
  3. %задание количества факторов
  4. nf=2;
  5. %задание диапазонов значений факторов (минимальное и максимальное значение)
  6. minf=[-2 0.1];
  7. maxf=[0.6 0.6];
  8. %формирование дробного двухуровневого плана эксперимента
  9. %для учета взаимодействий (три столбца)
  10. fracfact('a b ab' );
  11. %объем обучающей выборки
  12. N=2^nf;
  13. fracplan=ans
  14. %добавление фиктивного фактора чтоб была матрица 4*4
  15. fictfact=ones(N,1);
  16. X=[fictfact ans]'
  17. %заполнение матрицы значениями факторов
  18. fraceks=zeros(N,nf);
  19. fraceks
  20. %факторы:испытания
  21. for i=1:nf,
  22.     for j=1:N,
  23.         fraceks(j,i)=minf(i)+(fracplan(j,i)+1)*(maxf(i)-minf(i))/2;
  24.     end;
  25. end;
  26. fraceks
  27. %тактическое планирование эксперимента
  28. %задание доверительного интервала
  29. dm=0.3;
  30. %задание уровня значимости
  31. alpha=0.15;
  32. %определение t-критического
  33. %t-критическое (из формулы, которую мы выписывали)
  34. tkr_alpha=norminv(1-alpha/2);
  35. %определение требуемого числа испытаний
  36. %NE=round(1+2*tkr_alpha^2/d_sigma^2)
  37. %цикл по совокупности экспериментов стратегического плана
  38. for j=1:N
  39.     a=fraceks(j,1);
  40.     b=fraceks(j,2);
  41.     u=[];
  42.     %передача факторов в нашу функцию
  43.     u(1)=systemeqv(a,b);
  44.     NE=2;
  45.     %счетчик
  46.     i=2;
  47.     %цикл повторяется пока NE>=i
  48.     %NE уменьшается т.к. при увеличении количества точек,
  49.     %дисперсия будет уменьшаться
  50.     while NE>=i
  51.         u(i)=systemeqv(a,b);
  52.         NE=round((std(u)^2*tkr_alpha^2)/(dm^2));
  53.         i=i+1;
  54.     end;
  55.     %4 крайние точки
  56.     Y(j)=mean(u);
  57. end;
  58.    
  59. %определение коэффициентов регрессии
  60. C=X*X';
  61. b_=inv(C)*X*Y'
  62. %формирование зависимости реакции системы на множестве
  63. %значений факторов
  64. %минимальные шаги между двумя линиями
  65. %0.1 - это шаг
  66. A=minf(1):0.1:maxf(1);
  67. B=minf(2):0.1:maxf(2);
  68. %заполнение матриц числами
  69. [k N1]=size(A);
  70. [k N2]=size(B);
  71. for i=1:N1,
  72.     for j=1:N2,
  73.         an(i)=2*(A(i)-minf(1))/(maxf(1)-minf(1))-1;
  74.         bn(j)=2*(B(j)-minf(2))/(maxf(2)-minf(2))-1;
  75.         %экспериментальная поверхность реакции
  76.         Yc(j,i)=b_(1)+an(i)*b_(2)+bn(j)*b_(3)+an(i)*bn(j)*b_(4);
  77. end;
  78. end;
  79. for i=1:N1,
  80.     for j=1:N2,
  81.         %реальная поверхность реакции
  82.         Yo(j,i)=A(i)*exp((B(j)^2)/2);
  83. end;
  84. end;
  85. %отображение графиков с помощью соответствующих функций
  86. [x,y]=meshgrid(A,B);
  87. figure;
  88. %график полученный в ходе эксперимента
  89. subplot(1,2,1),surfl(x,y,Yc), %создание трехмерного графика  с бликами света
  90. xlabel('fact a'),
  91. ylabel('fact b'),
  92. zlabel('Yc'),
  93. title('Experimental surface output'),
  94. grid on,
  95. %реальный гафик
  96. subplot(1,2,2),surfl(x,y,Yo), %создание трехмерного графика  с бликами света
  97. xlabel('fact a'),
  98. ylabel('fact b'),
  99. zlabel('Yo'),
  100. title('Real surface output'),
  101. grid on;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement