Este é um dos exemplos mais simples do site, nele serão obtidos os diversos parâmetros de uma curva de luz fotossíntese. Serão usados dados de Tetraselmis gracilis. Os dados foram obtidos durante a aula prática descrita no relatório sobre Curva de Luz × Fotossíntese.
clear all; close all; clc;
Primeiro a matriz: uma coluna com intensidades de luz, uma com os dados obtidos no laboratório e a terceira terá a produção primária normalizada.
dados = [0 5.7094; 3.8180 5.5968; 4.1500 6.6294; 9.9600 6.0615; ... 11.6200 5.9479; 26.5600 7.5722; 96.2800 9.3442; 249.0000 ... 10.5844; 298.8000 12.0259; 332.0000 10.6877]; dados(:,2) = (dados(:,2)-6.1735)/2; dados(:,3) = (dados(:,2)/0.7)*375; dados(:,3) = dados(:,3)/484.3;
Adapta um polinômio de terceiro grau aos dados
sp = spap2(1,3,dados(:,1),dados(:,3)); % Plota o polinômio adaptado fnplt(sp); hold on; % Plota os dados plot(dados(:,1),dados(:,3),'or'); set(gcf, 'color', 'w');
% Adapta uma reta aos sete primeiros pontos, o ângulo entre essa reta e o % eixo X será o alpha. a = polyfit(dados(1:7,1),dados(1:7,3),1); xx = 0:220; yy = a(1)*xx+a(2); plot(xx,yy,'color',[.7 .7 .7],'LineStyle','--'); % Determina o ponto de máximo da curva, sabendo-se que este pode ser % encontrado onde a primeira derivada for zero zr = fnzeros(fnder(sp)); % Encontra o valor da curva no ponto de máximo b = fnval(sp, zr(1)); line([0 zr(1)], [b b], 'color',[.7 .7 .7],'LineStyle','--'); % Determina I(k), sabendo que ele encontra-se na intersecção das retas Ik = (b-a(2))/a(1); line([Ik Ik], [-1 4], 'color',[.4 .4 .4],'LineStyle','--'); line([0 340], [0 0], 'color',[.7 .7 .7],'LineStyle','--'); % Determina alpha, que é o arco tangente do coeficiente % angular da primeira reta alpha = atand(a(1));
title 'Curva de luz \times Fotossíntese para \itTetraselmis gracilis' xlabel 'Intensidade luminosa (\mu{}E m^{-2} s^{-1})' ylabel 'Produção primária normalizada' axis([0 340 -.5 3.3]); iktxt = strcat('\leftarrow{} ', sprintf(' I(k) = %.2f',Ik)); text(150,1,iktxt); btxt = sprintf('P_{b}^{max} = %.2f',b); text(50,3,btxt); pto_comp = fnzeros(sp); line([pto_comp(1) pto_comp(1)], [-200 .5], 'color',[.4 .4 .4],'LineStyle','--'); set(gca,'XTick',[0 100 200 300 332]) set(gca,'YTick',0:1:3) alphatxt = strcat('\alpha', sprintf('{} = %.2f',alpha), '\circ \rightarrow'); text(125, 2.5, alphatxt,'HorizontalAlignment','right'); hold off;