牛顿法、割线法、二分法

这篇具有很好参考价值的文章主要介绍了牛顿法、割线法、二分法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

牛顿法、割线法、二分法牛顿法、割线法、二分法
 1 clear;clc;
 2 %% 牛顿法
 3 f=@(x)x^4-4*x^2+4;%函数
 4 df=@(x)4*x^3-8*x;%一阶导数
 5 ddf=@(x)12*x^2-8;%二阶导数
 6 N=1000;%最大迭代次数
 7 x=zeros(N,1);%储存迭代点
 8 x(1)=log(8);%初始点
 9 eps=0.00001;%容许误差
10 
11 %迭代过程
12 for k=2:1:N
13     x(k)=x(k-1)-f(x(k-1))/df(x(k-1));
14     if(abs(x(k)-x(k-1))<eps)
15         break;
16     end
17 end
18 
19 X=x(k);%迭代结果
20 K=k;%迭代步数
21 
22 %% 牛顿法修正1
23 x=zeros(N,1);%储存迭代点
24 x(1)=log(8);%初始点
25 
26 %迭代过程
27 for k=2:1:N
28     x(k)=x(k-1)-2*f(x(k-1))/df(x(k-1));
29     if(abs(x(k)-x(k-1))<eps)
30         break;
31     end
32 end
33 
34 X1=x(k);%迭代结果
35 K1=k;%迭代步数
36 
37 %% 牛顿法修正2
38 x=zeros(N,1);%储存迭代点
39 x(1)=log(8);%初始点
40 
41 %迭代过程
42 for k=2:1:N
43     x(k)=x(k-1)-f(x(k-1))*df(x(k-1))/(df(x(k-1))^2-ddf(x(k-1))*f(x(k-1)));
44     if(abs(x(k)-x(k-1))<eps)
45         break;
46     end
47 end
48 
49 X2=x(k);%迭代结果
50 K2=k;%迭代步数
牛顿法求解非线性方程组
牛顿法、割线法、二分法牛顿法、割线法、二分法
 1 clear;clc;
 2 %% 割线法
 3 f=@(x)x^4-4*x^2+4;%函数
 4 df=@(x)4*x^3-8*x;%一阶导数
 5 N=1000;%最大迭代次数
 6 x=zeros(N,1);%储存迭代点
 7 x(1)=log(8);%初始点
 8 x(2)=x(1)-f(x(1))/df(x(1));
 9 eps=0.00001;%容许误差
10 
11 %迭代过程
12 for k=3:1:N
13     x(k)=x(k-1)-(x(k-1)-x(k-2))/(f(x(k-1))-f(x(k-2)))*f(x(k-1));
14     if(abs(x(k)-x(k-1))<eps)
15         break;
16     end
17 end
18 
19 X=x(k);%迭代结果
20 K=k;%迭代步数
21 
22 %% 修正的割线法
23 x=zeros(N,1);%储存迭代点
24 x(1)=log(8);%初始点
25 x(2)=x(1)-f(x(1))/df(x(1));
26 
27 %迭代过程
28 for k=3:1:N
29     u=x(k-2);v=x(k-1);s=u;
30     if abs(u)<abs(v)%交换
31         s=v;
32         v=u;
33         u=s;
34     end   
35     x(k)=v-(v-u)/(f(v)-f(u))*f(v);
36     if(abs(x(k)-x(k-1))<eps)
37         break;
38     end
39 end
40 
41 X1=x(k);%迭代结果
42 K1=k;%迭代步数
割线法求解非线性方程组
牛顿法、割线法、二分法牛顿法、割线法、二分法
 1 clear;clc;
 2 %% 二分法
 3 %计算根号三,相当于计算方程"x^2-3=0"的正根
 4 f=@(x)x^2-3;
 5 a=0;b=100;%区间端点
 6 c=(a+b)/2;
 7 N=1000;%最大迭代次数
 8 eps=0.00001;%容许误差
 9 
10 % 二分法过程
11 for k=1:1:N
12     if(f(a)*f(c)<0)
13         b=c;
14         c=(a+b)/2;
15     else
16         a=c;
17         c=(a+b)/2;
18     end
19     if (abs(a-b)<eps)
20         break;
21     end
22 end
23 
24 X=c;%迭代结果
25 K=k;%迭代步数
二分法求解根号3

 另外,今天上机课写程序时,发现不同的起始点可以收敛到不同的零点。也许这是一个新的值得研究的地方。

看来,计算数学也是这样,光听理论无法实现大的突破,也没法产生好的想法,必须在实践应用中感受方法的过程,才能发现新的突破点。文章来源地址https://www.toymoban.com/news/detail-747553.html

到了这里,关于牛顿法、割线法、二分法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法】—二分法详解

    ①定义: 二分查找算法也称折半搜索算法,对数搜索算法,是一种在 有序数组 中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素

    2024年02月09日
    浏览(35)
  • 二分法相关使用

    在线OJ:704. 二分查找 有序数组下的二分思路如下: 由于这里是有序数组, 我们可以可以先得到中点位置, 中点可以把数组分为左右两边; 如果中点位置的值等于目标值, 直接返回中点位置; 如果中点位置的值小于目标值, 则去数组中点左侧按同样的方式查找; 如果中点位置的值大

    2024年02月07日
    浏览(34)
  • 二分法MATLAB代码

    本质是通过不断进行区间压缩来获取函数零点。 二分法的终止条件:区间长度小于等于精度要求 。 流程: 如下图所示:

    2024年02月05日
    浏览(34)
  • 二分法简单题

    2024年01月24日
    浏览(36)
  • 【二分查找】一文带你掌握二分法 (附万能模板)

    一、简介 哪怕没有学过编程的同学,也许不知道二分法这个名字,但也一定接触过它的核心思想。不了解的同学也没关系,我用一句话就能概括出它的精髓: 将一个区间一分为二,每次都舍弃其中的一部分。 二分法能够极大地降低我们在解决问题时的时间复杂度。假如你要

    2024年01月19日
    浏览(41)
  • 非线性方程二分法

    优点:算法直观、简单、总能保证收敛;局限:收敛速度慢、一般不单独用它求根,仅为了获取根的粗略近似 设 f ( x ) f(x) f ( x ) 在 [ a , b ] [a,b] [ a , b ] 上连续、严格单调、满足条件 f ( a ) f ( b ) 0 f(a)f(b)0 f ( a ) f ( b ) 0 则在区间 [ a , b ] [a,b] [ a , b ] 内必有一根 x ∗ x^* x ∗ 。通

    2024年02月04日
    浏览(34)
  • 【剑指Offer】二分法例题

    链表是数据结构中重要的一个章节,他的重要性也不言而喻,在未来不管是笔试还是面试都会遇到这类的题目,所以接下来我就会把一些链表的常考的题目全部整理出来供大家学习指正。 题目链接 描述: 给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包

    2023年04月13日
    浏览(35)
  • 算法:二分法---寻找H指数

    1、题目: 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数 。 根据维基百科上 h 指数的定义: h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且每篇论文 至少 被引用

    2024年02月08日
    浏览(32)
  • 33. 搜索旋转排序数组(二分法)

    题目要求必须设计一个时间复杂度为  O(log n)  的算法解决此问题,所以我们可以采用二分法。 Step1. 先把 nums[0] 作为目标值,通过二分法找到旋转点索引; Step2. 如果旋转点索引为0,则数组本身就是升序的,否则思想上可以将数组一分为二,看做两个升序数组。 Step3. 判断

    2024年02月05日
    浏览(26)
  • 二分法的原理及其应用举例

    首先,什么是二分法:         最简单的例子就是类似于二分查找的用法来实现快速查找有序区间内的给定的目标值是否存在,当然,这也可以应用在别的问题中,二分查找是一个时间效率极高的算法,尤其是面对大量的数据时,其查找效率是极高,时间复杂度是log(n)。如果

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包