Graph of function not match y(variable)
2 次查看(过去 30 天)
显示 更早的评论
I wrote a non-polynomial function as y and made a plot graph from it but when I try to find a value of x from the function (simply using y(x)) it never seems to match what the value would be from the graph? For instance I can see that when x = 10 then y=-100 from the graph, but using y(10) I get the value x = -188.9. Relevant graph:
and y(10):
relevant code:
a5 = -2 * 10 ^ -5; %assign values of the equation variables
a4 = 3 * 10^ -5;
a3 = 2 * 10^ -2;
a0 = -50;
b1 = -10^ 2;
b2 = 10;
c1 = 2 * 10^ -1;
c2 = 10^ -1;
x= -37:37; %define the range of x for the graph
y = (a5.*x.^5 + a4.*x.^4 + a3.*x.^3 + a0 + b1.*(sin(c1.*x)) + b2.*exp(c2.*x)); %assign the y function
plot(x,y); %plot the graph
xlabel ('X axis'); %add the title, axis and grid to the graph
ylabel ('Y axis');
title ('Figure 1 - Function y as a function of x');
grid on;
end
0 个评论
采纳的回答
Michelangelo Ricciulli
2018-3-15
Hi Gabriel, you are mixing up the indexes of the vector and the argument of a mathematical function. y(10) means the 10th value memorized in the array y. y is made of 37*2+1=75 values and you associated the 1st with x=-37, the 2nd with x=-36 ... So y(10) in matlab, is equivalent to y(-37+10)=y(-27). And if you look at your plot, the value in x=-27 is -188.9 .
5 个评论
Michelangelo Ricciulli
2018-3-15
编辑:Michelangelo Ricciulli
2018-3-15
yes, it is right... But I guess that if you are going to use bisection method, you are also going to change the spacing between x values (now they are spaced by 1, so, for example, you can't evaluate y in 10.33). Then you should modify accordingly the values xu and xl. In the end, is far more convenient to use the method proposed by Steven Lord
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!