how to find values of X and Y that satisfy condition Z(X,Y)>a
조회 수: 4 (최근 30일)
이전 댓글 표시
Dear Pros, I'm very new to Matlab, and I'm a chemist not a computer science guy or engineer so be gentle with me please :). I have a rather complicated function of 2 variables Z=f(X,Y). I wish to find all the X and Y combinations (all real and positive numbers) at which z is above a certain value, so I'm looking to solve the inequity Z > a for X and Y. X and Y are vectors so I'm looking for an output that would be a set of X and Y pairs that satisfy the condition. Preferably these X and Y's and a would be arguments in a function that would describe an analytic solution (as an equation for a sphere segment would define the solution of all the points in a sphere above a certain longitude). Thanks for your help in advance, Tim
댓글 수: 0
답변 (1개)
Giovanni Mottola
2016년 10월 4일
Is it something like this you're looking for?
function [vec_pairs, num_pairs] = find_greater(X, Y, a)
len_X=length(X);
len_Y=length(Y);
num_pairs=0; % number of such pairs that have been found
for i=1:len_X
for j=1:len_Y
z=f(X(i), Y(j)); % insert name of your function, as defined in another .m file
if z>a
num_pairs=num_pairs+1;
vec_pairs(num_pairs, :)=[X(i), Y(j)];
end
end
end
end
Example:
X=[-1 -0.5 0 0.5 1];
Y=[-1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1];
The function f is defined in another .m file:
function z=f(x, y)
z=sqrt(1+x^2+y^2);
end
Calling the function from the command window:
[v, n]=find_greater(X, Y, 1.5)
Results:
v= -1.0000 -1.0000
-1.0000 -0.7500
-1.0000 0.7500
-1.0000 1.0000
1.0000 -1.0000
1.0000 -0.7500
1.0000 0.7500
1.0000 1.0000
n= 8
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Mathematics and Optimization에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!