首页 > 其他分享 >2023-06-19《计算方法》- 陈丽娟 - 方程的近似解法(注解)

2023-06-19《计算方法》- 陈丽娟 - 方程的近似解法(注解)

时间:2023-06-19 14:24:56浏览次数:50  
标签:06 19 截法 xslog 陈丽娟 epsilon xs x0 x1

2023-06-19《计算方法》- 陈丽娟 - 方程的近似解法(注解)

Matlab计算方法二分法迭代法牛顿法

前面介绍了求解方程的二分法、迭代法和牛顿迭代法,这里介绍弦截法,欸特金加速法。

一、弦截法

由于牛顿迭代法需要计算导数,而从上一章节我们看到导数的求解对数值稳定性会产生不良影响,为了避免导数,弦截法利用差商代替导数,其算法格式为:

  1. 给定邻域内的两点, , 且.
  2. 计算.
  3. , 停止,否则回到2.
    弦截法的示意图:
    enter description here
    弦截法的迭代格式与牛顿法如出一辙,都具有局部收敛性,并且弦截法具有超线性收敛速度。
  1. % f目标函数, x0,x1初始点,epsilon 
  2. function [xs, xslog] = SecantMeth(f, x0, x1, epsilon, maxit) 
  3. xs = x0; 
  4. iter = 1; 
  5. xslog = []; 
  6. if abs(feval(f,x0)) <= epsilon 
  7.  
  8. else 
  9. while abs(feval(f,xs)) > epsilon 
  10. if iter > maxit 
  11. break 
  12. end 
  13. fx0 = feval(f,x0); 
  14. fx1 = feval(f,x1); 
  15. fxdiff = (fx1 - fx0) / (x1 - x0); 
  16. xs = x0 - fx0 / fxdiff; 
  17. xslog = [xslog xs]; 
  18. x0 = x1; 
  19. x1 = xs; 
  20. iter = iter + 1; 
  21. end 
  22. end 
  23. end 

例子

  1. f = @(x) 5 .* x.^3+x.^2-x+1; 
  2. epsilon = 1e-8; 
  3. x0 = -10; 
  4. x1 = 10; 
  5. maxit = 1e3; 
  6. [xs, xslog] = SecantMeth(f, x0, x1, epsilon, maxit) 

书中另外介绍了Aitken加速算法,但是有些模糊,建议参考 lecture13.pdf 121.66 KB

https://mycareerwise.com/programming/category/numerical-analysis/aitkens-method#c

标签:06,19,截法,xslog,陈丽娟,epsilon,xs,x0,x1
From: https://www.cnblogs.com/NEFPHYS/p/17491024.html

相关文章

  • LeetCode 周赛 350(2023/06/18)01 背包变型题
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]和[BaguTreePro]知识星球提问。往期回顾:LeetCode单周赛第348场·数位DP模版学会了吗?T1.总行驶距离(Easy)标签:模拟T2.找出分区值(Medium)标签:排序T3.特别的排列(Medium)标签:图、状态压缩、......
  • 2023.6.19 可被3整除的最大和
    考虑动态规划,令f[i][j]表示以i开始,模3后值为j的最大和。那么可以得到状态转移方程:不取当前数,f[i][j]=f[i+1][j]取当前数,f[i][(f[i+1][j]+nums[i])%3]=f[i+1][j]+nums[i]目标状态:f[0][0]implSolution{pubfnmax_sum_div_three(nums:Vec<i32>)->......
  • 非Oracle Linux下安装Oracle 19c
    《Oracle19c之RPM安装》介绍了在OracleLinux平台下安装Oracle19c的过程,其实无论是19c,还是11g,用OracleLinux会为你省不少的事情,毕竟同为Oracle产品,从推广角度看,肯定会相对其他平台提供更多的便利性,例如提前预安装了需要的Package,设置了信号量,创建了各种账号、路径和权限。这次采......
  • 非Oracle Linux下Oracle 19c CDB数据库安装
    《非OracleLinux下安装Oracle19c》我们安装了non-cdb的19c数据库,通过这个脚本,还可以搭建cdb的数据库。1.修改安装脚本cp/etc/init.d/oracledb_ORCLCDB-19c/etc/init.d/oracledb_pdbisal-19c其中要改几处,ORACLE_SID改成新的,LISTENER_NAME改成新的,CREATE_AS_CDB之前我写的false,......
  • ABC306G 与 CF1835D 的思考
    两道题似乎都涉及了一个经典模型:在一张有向图上,给定起点\(s\)和终点\(t\),询问\(s\)到\(t\)与\(t\)到\(s\)是否均存在一条长度\(=L\)的路径(\(L\)是一个\(\gen^3\)的数)。首先\(s\)与\(t\)必须在同一个SCC内(考场上没看到互相可达直接以为不可做)。考虑取......
  • CF19D. Points
    感觉不难啊,为什么是*2800捏。先离散化。对每个横坐标开一个set存点,插入删除就能做了。查询的时候线段树二分就行了。更具体地,我们维护区间内纵坐标的最大值,在二分的时候能左就左,不能左就右。注意这里的右上角是严格大于。点击查看代码#include<bits/stdc++.h>#definei......
  • 2023-06-19 uniapp云打包报错:app-plus.distribute.icons.android.hdpi 文件不存在
    详细报错:[HBuilder]11:02:51.408Manifest.json文件以下节点配置错误,请检查修复[HBuilder]11:02:51.408app-plus.distribute.icons.android.hdpi 文件不存在[HBuilder]11:02:51.408app-plus.distribute.icons.android.xxhdpi 文件不存在[HBuilder]11:02:51.408ap......
  • 20230406 9.2. 希尔排序( by Donald Shell )
    希尔排序(byDonaldShell)定义增量序列\(D_M>D_{M-1}>…>D_1=1\)对每个\(D_k\)进行\(D_k-间隔\)排序(k=M,M-1,…1)注意:\(D_k-间隔\)有序的序列,在执行\(D_{k-1}-间隔\)排序后,仍然是\(D_k-间隔\)有序的希尔增量序列原始希尔排序$D_M=N/2$......
  • 【2023-06-16】熟悉的地方
    20:00准备是有价值的,也有苦中作乐的美感,你以为在消遣时光,其实你在为未来铺路。                                                 ——张艺谋何太的领导昨天出差了。所......
  • 20230618 java.util.stream.Stream
    介绍java.util.stream.StreampublicinterfaceStream<T>extendsBaseStream<T,Stream<T>>APIstaticbuilder返回Builder创建流:ofofNullableempty创建无限流:iterategenerateconcat<T>Stream<T>concat(Stream<?ext......