Interpolation within a 3d array

4 次查看(过去 30 天)
Charles
Charles 2011-2-28
I have a function of the form w=f(x,y,z) so running this function within a range of x,y,z inputs, say 1:3 for each, creates a 3x3x3 array of solutions. Now I want to know when w = 0 so I would like to interpolate within this array to find out what inputs I require to make the function zero.
Thanks for any help.

回答(1 个)

Sarah Wait Zaranek
You can probably use a lot of methods to do this, depending on what your function looks like.
If you do not have the optimization toolbox, one way would be to use fminsearch where your objective function would be abs(f(x,y,z));
See code below:
function findFuncZero
[x,feval] = fminsearch(@myFunction,[0 0 0]);
disp(x)
disp(feval)
end
function w = myFunction(inputVar)
x = inputVar(1);
y = inputVar(2);
z = inputVar(3);
w = abs(1* sin(x) + cos(y) + 2*sin(z) + 1);
end
My output is the following:
-0.1461 0.7125 -0.9366
5.0390e-005

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by