Hannah-Zhou/ALG_of_Nolinear_Equation
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
------------------------------------------------------------------------------------------------------------------------------------------- 1 简介 ------------------------------------------------------------------------------------------------------------------------------------------- 本算法包实现1-D非线性方程求解功能。 包含算法: (1)二分类算法:二分法 (2)Newton类算法:Newton法、三阶Newton法、Newton方程组法(测试版) (3)Illinois算法族:标准Illinois算法、Illinois算法(Pe.改进)、Illinois算法(A&B改进)、Illinois算法(其他改进版本) (4)Steffensen加速算法族:标准Steffensen算法、改进的Steffensen算法 (5)抛物线算法:基于数值积分启发的抛物线算法 使用每个算法都具有类似的流程,算法也将给出不同的结果,包括迭代分析、停机分析、结果显示与收敛性误差绘图。 ------------------------------------------------------------------------------------------------------------------------------------------- 2 使用教程 ------------------------------------------------------------------------------------------------------------------------------------------- 直接使用matlab修改源代码中的部分前置内容即可运行。需要修改的内容包括: (1)目标函数。在function f中输入需要的函数类型,一般以y = f(x)进行定义。输入的f(x)对应原方程中的f(x) = 0。 (2)迭代区间。在function Area(或area)中修改迭代的迭代区间。确保您输入的区间足够大以支持函数的迭代, 因为本算法将否定一切超出迭代区间的迭代过程(抛出错误)。 * 当您遇到这样的错误时,请检查您使用的迭代区间是否足够支撑充分的迭代探索。 (3)初始点(集)。在本算法包中,所有的初始点默认为:(a)当算法需要1个初始点时,使用区间的中点;(b)当算法需要2个 及以上初始点时,使用区间的对应等分点作为初始点集。 如果想自己制定初始点,请按如下顺序直接修改程序: (i)在主程序中指定初始点start_point = X.X; (ii)而后在算法的主函数中加入命令"w = start_point"。 例如,在Newton法程序中指定初始点为1,进行的操作是: (i)在主程序中指定初始点start_point = 1.0; (ii)而后在function Newton()中输入w = start_point。 (4)最大迭代步数。在"max_step = X;"中定义。 (5)最大函数容忍限度。最大函数容忍度作为良性停机准则使用,认为若迭代点使得函数的绝对值小于该值时,迭代可以停止。 在"max_f_step = Y;"中定义。 (6)最大步长容忍限度。最大步长容忍度作为良性停机准则使用,认为若迭代点更新的步长小于该值时,迭代可以停止。 在"max_x_step = Y;"中定义。 (7)特殊参数。部分算法所具有的特殊参数。 例如main_of_Illinois_advanced_single程序将具有多种迭代的不同格式,在源代码主函数中可以直接通过注释的形式进行调用。 其地址在源代码第90-97行。 ------------------------------------------------------------------------------------------------------------------------------------------- 3 程序表 ------------------------------------------------------------------------------------------------------------------------------------------- main_of_** bisection 二分法 newton Newton法 newton_P3 三阶Newton法(复结构) group_newton Newton方程组法 illinois_basic_single Illinois算法 illinois_advanced_single Illinois改进算法(包括Pe.改进、A&B改进及其他若干改进类型) illinois_int_steff Steffensen加速算法(1) illinois_int_steff_2 Steffensen加速算法(2) parabola 抛物线算法 ------------------------------------------------------------------------------------------------------------------------------------------- 4 技术支持 ------------------------------------------------------------------------------------------------------------------------------------------- 作者:周睿涵(RuihanZhou),武汉大学 数学与统计学院 发布时间:2020/12/20 版本:测试用 类型:源代码 支持:University Connection: rhzhou.math@whu.edu.cn