% programa para % (1) plotar dados da forca versus deslocamento (x, F), % (2) obter, usando a funcao residente polyfit de Octave/Matlab, % os valores de x_0 e k que resultam no melhor ajuste da reta F = x0 + k*x aos dados e % (3) plotar a reta de melhor adjuste clear; % substitui seus dados para o deslocamento x em metros no vetor x na proxima linha x = [0.024 0.052 0.073 0.11]; % substitui seus dados para a força F em Newtons no vetor F na proxima linha F = [0.5 1.0 1.5 2.0]; N = length(x); % calcula k a partir dos dados usando minimos quadrados lineares p = polyfit(x,F,1); x0 = p(2), k = p(1) f = figure; box on % edite o titulo na proxima linha para uma/duas/três molas em paralelo/serie title('Lei de Hooke para (???) molas em (paralelo/serie)') xlabel('x (m)') ylabel('F (N)') hold on plot(x,F,'o','MarkerEdgeColor','k',... 'MarkerFaceColor',[0 0 0]+0.7,... 'MarkerSize', 8,'LineWidth', 1.5); xp = [0 x(N)]; Fp = x0 + k*xp; plot(xp,Fp,'k','LineWidth',1.5); l=legend('dados','F = k*x'); str1 = cat(2, 'k = ', num2str(k,'%5.1f'), ' N/m'); text('String',str1,'Position',[0.1*x(4) 0.8*F(4)],'FontSize',16); print -depsc hooke print -djpeg -r300 hooke