To jest stara wersja strony!
y=[0.67 0.67 0.67 0.67 0.67 0.02 0.02 0.02 0.02]; temp = 727; R = 8.3144; Q = 140000; temp_k = temp + 273; d0= 0.000041; D = d0 * exp( -Q /( R * temp_k)) * 1 * 10^10; dt = 1; dx = 1; tmp = (D*dt)/dx^2; n = 100; [s_h s_w] = size(y); y2 = zeros(1, s_w); for j = 1:n for i = 1:s_w im = i-1; ip = i+1; if im < 1 im = 1; end if ip > s_w ip = s_w; end y2(i) = (1 - 2*tmp)*y(i) + tmp*(y(im) + y(ip)); end y = y2; end plot(y2, 'DisplayName', 'y2', 'yDataSource', 'y2');
temp = 727; R = 8.3144; Q = 140000; temp_k = temp + 273; d0= 0.000041; D = d0 * exp( -Q /( R * temp_k)) * 1 * 10^10; dt = 0.01; dx = 0.1; pN = 0.1; if (D*dt)/dx^2 <= 0.5 % Obszar rozwiązania: 100 um %y=[0.67 0.67 0.67 0.67 0.67 0.02 0.02 0.02 0.02]; y(1:5) = 0.67; y(6:100) = 0.02; ksi = 6; for k = 0:dt:10 y = [y(1), y, y(length(y))]; y1 = y; for i = 2:1:ksi+1 y1(i) = D *( dt / dx^2 ) * ( y(i+1) + y(i-1)) + y(i) * (1 - 2*D*(dt/dx^2)); end y = y1; y = y(2:1:length(y)-1); plot(y) hold on % rownanie prostej przechodzacej przez dwa punkty % (x2 - x1)(y - y1) = (y2 - y1)(x - x1) yLine = -0.00407 * temp_k + 3.715; % zwiekszenie ksi if y(ksi) >= yLine && ksi < length(y)-1 ksi = ksi + 1; end % zwiekszenie temperatury o zadany prog i kolejna iteracja temp_k = temp_k + pN * dt; D = d0 * exp( -Q /( R * temp_k)) * 1 * 10^10; end % disp(y); end