how find a function which maps a vector to vector

hi every one
i have an input vector with form of [a1 a2 a3], also i have an unknown function which gets the input vector. the output of function is a number that locates in the range with continuous values. Some numbers have more chance to be seen than the rest of the numbers.
for example if the function gets the [800 100 150] , the output can be any number between 6 and 14. but 12 has more chance to be seen.
so i have a vector of vectors with discrete numbers as an input with form of [a1 a2 a3; b1 b2 b3; ... ]
and i have a vectors of vectors with continuous numbers with Normal distribution. how can i find the function.

6 Commenti

So you want to reverse-engineer an ℝ3 to ℝ1 function? Unless you have a pretty good idea of what the function is doing anyway that might be very labor-intensive.
What kind of function is it? Mex? A p-file?
the function should model the non-linear system behaviour . somebody suggest me to use system identification to find the transfer-function of the system. but i dont want to be envolved in time-domain and frequency domain analysis. because they make my calculations very difficult. i dont create any function yet. i just have the set of input vectors and corresponding output. and i want to know what function governs on this system. i will appreciate if you tell me what tools can help me
There are of course an infinite number of functions that map a finite set of numbers to another finite set of numbers. Without more constraints, your question cannot be answered.
If you have reasonable guess about the type of function based on the physical meaning of you values, you can use the fitting tools of Matlab to find parameters for that function. The first step is likely not something we can help with (especially if you don't provide any details). The second step is something we can help with.
As an example: if your inputs describe latitude, longitude, and height and your output describes the g at that point in space, we could try to help you find a function that works reasonably well.
As Guillaume stated, it is mathematically impossible to find a specific function for arbitrary data. It is however possible to find the parameters once you have a function.
Since you rejected system identification and frequency analysis it seems that you are not looking for any type of dynamical behaviour, we have to assume that you have a simple function-fitting problem: I = f(x,y,z). For that you have as Guillaume pointed out an infinite number of functions to choose from - so you better start with simple approximations. If you have access to the function spap2 it might be a starting point to investigate the general behaviour of your function. If you think that the function might be well modeled with a 3-D polynomial you might get a first stab at what it might look like with this FEX-contriobution: polyfitn.
it is all information which i have earned:
Input = [speed item1 item2]
Output = Y0 - ∆Y
∆Y < max_limit : ∆Y is deviation from Y0
Y0 - max_limit < Output < Y0
Y0 is more expected to be seen compared to other values between Y0 - max_limit to Y0.
The table contains the very small subset of my logged data.
Speed Item1 Item2 Y0 max_limit
200 100 180 16 0
600 10 25 16 0.4
750 30 210 13 8
900 50 150 10.8 9
1100 10 12 8 0.2
1400 100 180 6.9 4.5
1600 20 240 6.1 6.1
I have found these relations practically:
Y0 = F1(1/Speed)
∆Y = F2(Speed) * F3(Item2 – Item1) Or maybe:
∆Y = F2(Speed) + F3(Item2 – Item1) Item2 > Item1

Accedi per commentare.

Risposte (0)

Richiesto:

ali
il 4 Lug 2019

Commentato:

ali
il 4 Lug 2019

Community Treasure Hunt

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

Start Hunting!

Translated by