Consider the function, f(x,y) = (x-a)^-1 +(y-b)^x * sqrt(xy) (Matlab programming
ID: 3553784 • Letter: C
Question
Consider the function, f(x,y) = (x-a)^-1 +(y-b)^x * sqrt(xy) (Matlab programming)
using if, else function.
(a) Write MATLAB which takes values for x and y from the user and evaluates the
expression. The user should be able to either real or complex values, so the function
must be defined correctly for complex numbers (for full marks this should be able to deal with vector inputs). Errors should be thrown cases which are undefined. Submit
your code in a Separate *.m file.
(b)Write a second version in which inputs and outputs are restricted the real number
line. Errors should be thrown if the user tries to enter complex values. Submit your
code in a Separate *.m file.
Explanation / Answer
CODE:
A)
function [Func] = f(X,Y)
% a and b are assigned a sample value
a = 1;
b=2;
for k = 1:numel(X)
Func(k) = (X(k)-a)^(-1) +(Y(k)-b)^X(k) * sqrt(X(k)*Y(k));
if Func(k) == Inf
error('Function is not defined for the given values of variables')
end
end
B)
function [Func] = f(X,Y)
% a and b are assigned a sample value
a = 1;
b=2;
for k = 1:numel(X)
if ~(isreal(X(k)) && isreal(Y(k)))
error ('Please input Real values')
end
if X(k)*Y(k) < 0
error('Product of the variable should be positive')
end
Func(k) = (X(k)-a)^(-1) +(Y(k)-b)^X(k) * sqrt(X(k)*Y(k));
if Func(k) == Inf
error('Function is not defined for the given values of variables')
end
end