Ir ao conteúdo
  • Cadastre-se

Ajuda matlab


Bossman

Posts recomendados

Eu estive hoje a tentar resolver o problema, e fiz o seguinte código:

function [ best , cbest ]= subidaColina_Aleatoria (f, n , v, step)

dim = size(v,2);

best = v(:,1)+(v(:,2)-v(:,1)).*rand(dim, 1);

x=best;

cbest=eval(f);

for k=2:n

x=v(:,1)+(v(:,2)-v(:,1)).*rand(dim,1);

best_l=x;

cx=eval(f);

cbest_l =cx;

for j=2:n

x=best + step.*(0.5-rand(dim,1));

dx=eval(f);

if dx < cbest_l

cbest_l=dx;

best_l=x;

end

end

if cbest_l<cbest

cbest=cbest_l;

best=best_l;

end

end

return

O que o código devia fazer era gerar um numero aleatorio assumindo logo como menor, de seguida entrar num for e gerar outro numero aleatorio para o comparar com o anterior. Mas no segundo numero ele verifica os vizinhos para verificar qual deles é o melhor e no fim comprar com o primeiro numero aleatorio. O código corre mas dá valores fora do espaço que introduzo. Alguem me ajuda???

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...