# Team:Paris/Modeling/More f2 Algo

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

## find_ƒ2

```function optimal_parameters = find_f2(X_data, Y_data, initial_parameters)
% gives the 'best parameters' involved in f2 by least-square optimisation

% X_data = vector of given values of a [arab]i (experimentally
% controled)
% Y_data = vector of experimentally measured values f2 corresponding of
% the X_data
% initial_parameters = values of the parameters proposed by the literature
%                       or simply guessed

for k = 1:length(X_data)
output(k) = parameters(1) * ( hill( ...
(hill(X_data(k), parameters(4), parameters(5))), parameters(2), parameters(3)) );
end
end

options=optimset('LevenbergMarquardt','on','TolX',1e-10,'MaxFunEvals',1e10,'TolFun',1e-10,'MaxIter',1e4);
% options for the function lsqcurvefit

optimal_parameters = lsqcurvefit( @(parameters, X_data) expr_pBad(parameters, X_data), ...
initial_parameters, X_data, Y_data, 1/10*initial_parameters, 10*initial_parameters, options );
% search for the fittest parameters, between 1/10 and 10 times the initial
% parameters
end
```

## Inv_ƒ2

```function quant_ara = Inv_f2(inducer_quantity)
% gives the quantity of [ara]i needed to get inducer_quantity of a protein
% throught a gene behind pBad

function equa = F(x)
equa = f2( x ) - inducer_quantity;
end

options=optimset('LevenbergMarquardt','on','TolX',1e-10,'MaxFunEvals',1e10,'TolFun',1e-10,'MaxIter',1e4);

quant_ara = fsolve(F,1,options);

end
```