i have a question that works backwards

I have a set of values for F and a set of values for D.
When F and D are divided together they give a ratio that I have the answers to in variable X
so
X=F./(D.^5)
ex.
F =[
0.0026 0.0026 0.0026 0.0026 0.0027 0.0027 0.0027 0.0028 0.0028 0.0028]
D =[
0.9652 1.0160 1.0668 1.1176 1.1684 1.2192 1.3208 1.4224 1.5240 1.6256]
X=[0.0024 0.0019 0.0015 0.0012 0.0010 0.0007 0.0005 0.0003 0.0002]
I want code that tells me for which F and which D give me the known answer of X

5 Comments

What if there isn't an exact match (with floating point even if is theoretically, may not be numerically but that's a different issue)?
So, what is the desired answer for the above example data set?
It's possible there is no (F, D) pair that gives the desired X value. Look:
F = [0.0026 0.0026 0.0026 0.0026 0.0027 0.0027 0.0027 0.0028 0.0028 0.0028]
D = [0.9652 1.0160 1.0668 1.1176 1.1684 1.2192 1.3208 1.4224 1.5240 1.6256]
X = [0.0024 0.0019 0.0015 0.0012 0.0010 0.0007 0.0005 0.0003 0.0002]
X=F./(D.^5)
plot3(F, D, X, 'b*-', 'LineWidth', 2);
grid on;
xlabel('F', 'FontSize', 20);
ylabel('D', 'FontSize', 20);
zlabel('X', 'FontSize', 20);
0001 Screenshot.png
dpb
dpb on 28 Apr 2019
Edited: dpb on 28 Apr 2019
Well, individually, however, the variables are monotonic so one could in theory interpolate which is what the crystal ball is saying the OP would want to do...but would be good to know just what is the desired result for sure...
yyaxis left
hLL=plot([F;X].');
ylabel('F, X')
yyaxis right
hLR=plot(D);
ylabel('D')
xlabel('Ordinal number');
legend([hLL;hLR],'F','X','D')
The attached data are lacking in significant digits for both D and F but even so, X is relatively smooth.
the desired output would be
F= 0.0026 0.0026 0.0026 0.0027 0.0027 0.0027 0.0028 0.0028 0.0028
D= 1.0160 1.0668 1.1176 1.1684 1.2192 1.3208 1.4224 1.5240 1.6256
% notice that when the corrosponding values of F and D are divided give us X
(F./(D.^5))
(0.0026./(1.0160.^5))= 0.0024
%FIRST VALUE OF F AND D GAVE US THE FIRST VALUE OF X
and so on for the rest
how can i code this to give me the desired output of which F and D has been used to calculate X RESPECTIVLEY
That's a trivial Q? as posed; you calculated X_i from F,D_i so the answer is simply "i" for the set of calculated values.
IF you somehow generate the identically-computed X from some other location, then that Xprime value would match one of the originals; to find which one would be simply
indx=find(X==Xprime);
BUT as was noted in the previous comment, that exact lookup will fail almost certainly owing to floating point rounding and precision issues; perhaps ismember could help resolve that particular problem but somehow I don't think you've yet described what you're after sufficiently for us to understand what the objective is here.

Answers (1)

What about
% X is known
F = X
D = ones(size(F))
% F ./ (D.^5) equals X
or is this to simply thought by me ;-)

This question is closed.

Tags

Asked:

on 28 Apr 2019

Closed:

on 20 Aug 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!