Matlab 二分法(数值分析)

Matlab 二分法(数值分析),matlab,analysis,numerical,newtons-method,bisection,Matlab,Analysis,Numerical,Newtons Method,Bisection,在找到每个根之前进行了多少次递归?还有,哪些是根 这是我的密码: e=0.000001; f1=@(x) 14.*x.*exp(x-2)-12.*exp(x-2)-7.*x.^3+20.*x.^2-26.*x+12; a=0; c=3; while abs(c-a)>e b=(c+a)/2; if f1(a)*f1(b)<0 c=b; else a=b; end disp(b); e

在找到每个根之前进行了多少次递归?还有,哪些是根

这是我的密码:

e=0.000001; 
f1=@(x) 14.*x.*exp(x-2)-12.*exp(x-2)-7.*x.^3+20.*x.^2-26.*x+12;

a=0; 
c=3; 
while abs(c-a)>e 
    b=(c+a)/2; 
    if f1(a)*f1(b)<0 
        c=b; 
    else
        a=b;
    end    
    disp(b);  
end

二分法的工作原理是:取某个初始区间[a,b]的端点,找出该区间的哪一半必须包含根,然后计算中点,并确定哪一半有符号变化。然后对分在已识别的一半上重复该过程

二分法只收敛于一个可能的根,如果函数在[a,b]中有多个根,通常很难预测它将收敛到哪个特定根。注意:由于二分法是一种完全确定的算法,如果给它相同的初始间隔,它将始终收敛到完全相同的根。迭代只需细化找到的根的近似值,而不会找到多个根


为了直接回答您的问题,二分法不会在[0,3]中发现函数的所有三个根。它将只找到一个根,这是由对分代码的最终迭代确定的。二分法迭代输出的所有值只是显示了算法朝着最终找到的一个根所取得的进展,这些值应该是一个收敛于最终值的序列。

二分法通过选取某个初始间隔[a,b]的端点来工作找出区间的哪一半必须包含根,它计算中点,并确定哪一半有符号变化。然后对分在已识别的一半上重复该过程

二分法只收敛于一个可能的根,如果函数在[a,b]中有多个根,通常很难预测它将收敛到哪个特定根。注意:由于二分法是一种完全确定的算法,如果给它相同的初始间隔,它将始终收敛到完全相同的根。迭代只需细化找到的根的近似值,而不会找到多个根


为了直接回答您的问题,二分法不会在[0,3]中发现函数的所有三个根。它将只找到一个根,这是由对分代码的最终迭代确定的。二分法迭代输出的所有值仅显示算法朝着最终找到的一个根所取得的进展,这些值应该是一个收敛于最终值的序列。

二分法的算法是这样的,它只能在定义的间隔之间找到一个根。在你的问题中,三个根都找不到,但是如果你定义不同的时间间隔来找出各个根,你可能会成功。您可以通过这个示例程序了解完整的理论背景和示例。

对分法的算法是这样的,它只能在定义的间隔之间找到一个根。在你的问题中,三个根都找不到,但是如果你定义不同的时间间隔来找出各个根,你可能会成功。您可以通过这个示例程序了解完整的理论背景和示例。

那么,为什么不将打印输出添加到递归中,自己看看呢?我不熟悉函数的内部结构,因此无法深入了解具体内容,但为什么不打印内部变量的值并确定哪些值对应于哪个根?或者,你可以发布算法,我自己来看看。你的算法只找到一个根z=0.857,而你的函数在2有另一个根。另外,请不要发布代码的链接,而是将其嵌入问题中。只需在这里指出显而易见的一点:你知道fzero吗?还可以看一下-您将从中学到很多。那么为什么不将打印输出添加到您的递归中并亲自查看呢?我不熟悉您的函数的内部结构,因此无法深入了解细节,但为什么不只打印内部变量的值并确定哪些值对应于哪个根?或者,你可以发布算法,我自己来看看。你的算法只找到一个根z=0.857,而你的函数在2有另一个根。另外,请不要发布代码的链接,而是将其嵌入问题中。只需在这里指出显而易见的一点:你知道fzero吗?同时看看——你会从中学到很多。找到3个根的快速答案是看你的情节,选择三个不同的间隔,每个间隔只包含一个根。这样,您就可以保证找到的根二分法是正确的。同样,使用其他的根查找算法,他们将找到一个根。当比较它们时,它们甚至可能不会全部收敛到同一根,并且在对分/割线方法的情况下,收敛性在很大程度上取决于初始条件或时间间隔。例如,如果您碰巧在根目录本身初始化了其中一个方法,那么它的性能将是完美的!找到三个根的快速答案是看你的情节,然后选择三个dif 不同的间隔,每个间隔只包含一个根。这样,您就可以保证找到的根二分法是正确的。同样,使用其他的根查找算法,他们将找到一个根。当比较它们时,它们甚至可能不会全部收敛到同一根,并且在对分/割线方法的情况下,收敛性在很大程度上取决于初始条件或时间间隔。例如,如果您碰巧在根目录本身初始化了其中一个方法,那么它的性能将是完美的!