MATLAB上的二分法

时间:2015-02-04 02:11:45

标签: matlab bisection

我是一名工科学生,我们需要参加计算方法课程。我正在研究我的MATLAB任务,我似乎遇到了一个我无法解决的问题。我是MATLAB的新手所以解决方案看似简单,我只是愚蠢。

问题是当我尝试将小数插入函数时,我在命令窗口中看到“尝试访问y(17.5);索引必须是正整数或逻辑”时出错。我知道问题是17.5,但我需要能够获得非整数的值,否则二分法将无效。

以下是本程序的代码:

clc
clear
x=-25:.5:25;
y=-x.^2+4*x+300;
plot(x,y);
grid on;
hold on
disp('Look at the graph, and select the upper and lower bounds to find the POSITIVE root.')
x_min=input('The lower bound is: ');
x_max=input('The upper bound is: ');
E_a=1;
while E_a >= 0.01
    x_mid=((x_min + x_max)/2)
    if (y(x_mid))*(y(x_max)) < 0
        x_max = x_mid
    end
end

对于我的x_min,我使用了15,而20用于x_max

感谢您的帮助!

0 个答案:

没有答案