Inverse of log formula
    13 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Lisa
 le 1 Mai 2017
  
    
    
    
    
    Réponse apportée : Image Analyst
      
      
 le 1 Mai 2017
            Hi, I have the following formula:
    y = -log(x / mean(x))
y and x are vector’s.
However, in my case I only know y, but not x. Therefore, I would like to solve the inverse of the formula for x. I am aware of that exp is the inverse of log:
    x=-exp(y)
but I am not sure how to consider the term mean(x)?
Thank you in advance.
Lisa
0 commentaires
Réponse acceptée
  Star Strider
      
      
 le 1 Mai 2017
        You cannot determine ‘mean(x)’ unless you have access to the original ‘x’ vector. (If you had ‘x’, you would not need to do the inversion.) You can only recover the normalised ratio ‘x/mean(x)’.
3 commentaires
Plus de réponses (2)
  Image Analyst
      
      
 le 1 Mai 2017
        Lisa, is this what you are after - to find the x for a y that is a specified value? You can do it numerically like this, where I find the x where y = 1:
% Define a range of x values.
x = sort(rand(1, 500), 'ascend');
% Compute the y values over that range.
fprintf('mean(x) = %f\n', mean(x));
y = -log(x / mean(x));
% Plot curve.
plot(x, y, 'b-', 'LineWidth', 2);
grid on;
xlabel('x', 'FontSize', 20);
ylabel('y', 'FontSize', 20);
% Find the x closest to y = 1 (for example).
[minValue, index] = min(abs(y-1))
% Get x and y values
x1 = x(index);
y1 = y(index);
fprintf('Closest point: y = %f at x = %f\n', y1, x1);
% Draw lines
hold on;
line([0, x1], [y1, y1], 'Color', 'r', 'LineWidth', 2);
line([x1, x1], [0, y1], 'Color', 'r', 'LineWidth', 2);
ax = gca;
ax.XAxisLocation = 'origin';
In the command window:
mean(x) = 0.514679
minValue =
        0.0017406261319084
index =
    93
Closest point: y = 1.001741 at x = 0.189011
And the plot of the results:

0 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!