clear
clc
num_particles = 1000;
max_iterations = 100;
w = 0.8;
c1 = 2;
c2 = 2;
lb = [0,0,0];
ub = [2,2,2];
filename = 'mat444.xlsx';
data = readmatrix(filename);
frequencies = data(:,1);
material1_mu_real = data(:,2);
material1_mu_imag = data(:,3);
material1_epsilon_real = data(:,4);
material1_epsilon_imag = data(:,5);
material2_mu_real = data(:,6);
material2_mu_imag = data(:,7);
material2_epsilon_real = data(:,8);
material2_epsilon_imag = data(:,9);
material3_mu_real = data(:,10);
material3_mu_imag = data(:,11);
material3_epsilon_real = data(:,12);
material3_epsilon_imag = data(:,13);particles = zeros(num_particles,6);
for i = 1 : num_particlesmat_types = randperm(3); thickness = 2 * rand(1,3); particles(i,:) = [mat_types,thickness];
endvelocities = zeros(num_particles, 6);
personal_best_positions = particles;
personal_best_fitness = zeros(num_particles, 1);
rl_new = zeros(num_particles,length(frequencies));
for i = 1:num_particles[personal_best_fitness(i),rl_new(i,:)] = objective_function(particles(i,:), frequencies, material1_mu_real, material1_mu_imag, material1_epsilon_real, material1_epsilon_imag, material2_mu_real, material2_mu_imag, material2_epsilon_real, material2_epsilon_imag, material3_mu_real, material3_mu_imag, material3_epsilon_real, material3_epsilon_imag);
end[global_best_fitness, best_index] = min(personal_best_fitness);
global_best_position = personal_best_positions(best_index, :);
fitness_history = zeros(max_iterations, 1);
rl = zeros(num_particles,length(frequencies));
for iter = 1:max_iterationsfor i = 1:num_particlesvelocities(i, 1