迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > MATLAB >

MATLAB 中的Newton-Raphson 法

作者:迹忆客 最近更新:2023/04/23 浏览次数:

本教程将讨论在 MATLAB 中使用 Newton-Raphson 方法求函数的根。


MATLAB 中的牛顿-拉夫逊法

我们使用 Newton-Raphson 方法求函数的根。 该方法使用公式来逼近具有切线的连续函数,以找到给定函数的根的近似值。

用于使用 Newton-Raphson 方法求根的公式如下。

Newton Method

该公式使用先前的值、函数及其导数来查找给定函数的下一个根。 要求函数的导数,我们可以使用 MATLAB 的 diff() 函数。

我们需要使用一个循环来使用上面的公式来获取根。 例如,如果我们需要找到四个根,我们将循环重复四次。

我们将把给定的函数存储在一个变量中,使用 diff() 函数获取它的导数,并将它存储在一个变量中。 我们还必须将所有根值存储在一个数组中,以便轻松访问先前的根值。

之后,我们需要使用循环来查找根,我们将使用根数组更新值。 我们可以使用 subs() 函数来更新循环中的值并将根值存储在根数组中。

例如,让我们定义一个函数并使用随机函数,并在 MATLAB 中使用上述公式找到它的前五个根。 请参阅下面的代码。

clc
clear
fun = @(x) sin(x);
roots = mynewton(fun, 2, 5)

function output = mynewton(fun,a,n)
syms x;
z = fun(x);
derZ = diff(z);
out = zeros(1,n+1);
out(1) = a;

for idx = 1 : n
    numeratorZ = subs(z,x,out(idx));
    denominatorZ = subs(derZ,x,out(idx));
    out(idx+1) = out(idx) - double(numeratorZ)/double(denominatorZ);
end
output = out;
end

输出:

roots =

    2.0000    4.1850    2.4679    3.2662    3.1409    3.1416

请注意,如果上面的代码显示错误,请将函数 mynewton() 保存在一个单独的 .m 文件中,该文件与函数名称同名,如 mynewton.m ,然后创建另一个 .m 文件并将前四行代码写入 它调用函数或从 MATLAB 的命令窗口调用它。 测试文件和 mynewton.m 应该在同一个目录中。

在上面的代码中,我们定义了 mynewton() 函数,我们必须在其中传递给定的函数,我们想要找到它的根,根的初始猜测,以及我们想要找到的根的数量。

我们使用 zeros() 函数用零初始化根数组,以便我们可以在使用公式计算值后放置这些值。

我们使用 subs() 函数来更新上述 Newton-Raphson 法公式中分子和分母的值。 subs() 函数的第一个参数是我们要查找其根的给定函数。

第二个参数是我们要更改的旧值,第三个是我们要在给定函数中替换旧值的新值。

subs() 函数之后,输出将是函数形式,如 cos(number) ,所以我们使用 double() 函数将值转换为数值,然后将 Newton-Raphson 公式应用于这些值以求值 的根。

输出显示根和初始猜测已存储在输出数组中。 上面的代码是 Newton-Raphson 方法的基本表示,但我们可以添加其他内容,例如公差或检查算法是否收敛的方法。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 MATLAB 中注释多行

发布时间:2023/04/23 浏览次数:111 分类:MATLAB

可以使用注释块方法或 MATLAB 编辑器在 MATLAB 中注释多行。

MATLAB 最大索引

发布时间:2023/04/23 浏览次数:192 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 max() 函数从数组及其索引中查找最大值。

MATLAB 索引超出矩阵尺寸

发布时间:2023/04/23 浏览次数:103 分类:MATLAB

要解决索引超出矩阵索引的问题,请检查你要获取或替换数据的索引。

MATLAB 检查变量类型

发布时间:2023/04/23 浏览次数:92 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。

MATLAB vs Octave

发布时间:2023/04/23 浏览次数:74 分类:MATLAB

我们可以说 Octave 是 MATLAB 的免费版本。

MATLAB MAT 文件

发布时间:2023/04/23 浏览次数:89 分类:MATLAB

可以使用 MAT 文件在 MATLAB 中存储和加载格式化的数据。

MATLAB asv 文件

发布时间:2023/04/23 浏览次数:180 分类:MATLAB

.asv 文件是 MATLAB 生成的自动保存文件,因此在计算机崩溃时你不会丢失数据。

MATLAB 三元运算符

发布时间:2023/04/23 浏览次数:130 分类:MATLAB

MATLAB 中没有三元运算符,因此你必须使用标准格式。

MATLAB & vs &&

发布时间:2023/04/23 浏览次数:134 分类:MATLAB

在 MATLAB 中,&是逻辑与运算符,&&也是表现出短路行为的逻辑运算符。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便