# How to plot a function ?

2 views (last 30 days)
Alexandru Stefan on 17 Mar 2014
Commented: Alexandru Stefan on 19 Mar 2014
Helli, i'm a newbie in mathlab and i try for hours to make the program below, please would you explained me how to begin or make the program and write the code to see where i make some mistake.
Write a program that recieve as arguments two real numbers a and b with a>0 and b∈(0,1) and who represent graphic in cartesian coordinate function f:[0,2]->R.
{ (a*x)/(x^2+b), x[0,1]
f(x)= {
{ ln(x^2-3*x+3), x(1,2]
with dashed line and black color. The program display an error message if the requirements about arguments are not respected.
Thank You!!

Carlos on 17 Mar 2014
Edited: Carlos on 17 Mar 2014
Some ideas here
function y=new(a,b)
if(a<0)
disp('a must be bigger than zero');
end
if(b<0||b>1)
disp('a must be bigger than zero and smaller than 1');
end
x=0:0.1:2;
y=zeros(1,length(x));
for k=1:length(x)
if (x(k)<1)
y(k)=(a*x(k))/(x(k)^2+b);
else
y(k)=log(x(k)^2-3*x(k)+3);
end
end
plot(x,y)
Alexandru Stefan on 19 Mar 2014
Thank you, both were really helpful.

Niklas Nylén on 17 Mar 2014
function fx = myFunction(a,b)
x=0:0.1:2; % Create the x vector with step size 0.1
fx = zeros(size(x)); % Initialize the function output fx with zeros
% Make the calculation for when x<=1
index = x <= 1; % Creates a logical vector with 0's and 1's
% Calculate f(x) for the indices of x which fulfill the previous logical statement
fx(index) = (a.*x(index))./(x(index).^2+b);
% Use the second equation when x > 1
index = x > 1;
fx(index) = log(x(index).^2-3.*x(index)+3);
figure;
plot(x,fx)
##### 2 CommentsShowHide 1 older comment
Carlos on 17 Mar 2014
I have edited my previous code including the imput argument control you requested