我有以下非线性方程:

在哪里. 我必须证明如果是根,那么也是是一个根并且只存在一个root,但我的 MATLAB 代码没有返回任何解决方案。
使用 wolframalpha 我计算了 w0 的导数并获得,常数 w0=0.25=0.5=0.75 被忽略。

在 MATLAB 中,我有以下函数来计算非线性方程的根:

我的测试文件如下所示:

任何使我的代码功能化的想法都值得赞赏。
我有以下非线性方程:

在哪里. 我必须证明如果是根,那么也是是一个根并且只存在一个root,但我的 MATLAB 代码没有返回任何解决方案。
使用 wolframalpha 我计算了 w0 的导数并获得,常数 w0=0.25=0.5=0.75 被忽略。

在 MATLAB 中,我有以下函数来计算非线性方程的根:

我的测试文件如下所示:

任何使我的代码功能化的想法都值得赞赏。
您已经编写w1 = @(k) ((2*k)/(log((1+k)*(1-k))))-0.25;了,但您的原始函数意味着这应该w1 = @(k) ((2*k)/(log((1+k)/(1-k))))-0.25;与其他匿名函数类似。不同之处在于除法log而不是乘法。另请注意,此函数中存在奇点并且该函数在 [0,1] 范围之外是复数值,因此牛顿法将不是很可靠(尤其是因为根非常接近于)。使用包围方法(例如二等分或错误位置)可能会更好。
请注意,如果您的目标是“证明”如果是根,那么是根,用数字求根根本不能证明。您实际上需要对方程执行一些(相对简单的)操作以显示关于.