非线性方程的智能化实现及应用

时间:2022-04-10 08:07:32

非线性方程的智能化实现及应用

摘要:方程和方程组的解法一直是相关研究人员关注的焦点。针对非线性方程的解法做出智能化实现,以各种解方程的数学原理、方法为基础,以MATLAB为主要计算工具,编写程序实现智能化、最优化、简便化地解方程的根;进行各种分析,并应用于实际例子,验证其正确性、可行性以及智能化。

关键词:非线性方程;二分法;牛顿法;智能化;迭代法

中图分类号:TP301 文献标识码:A 文章编号文章编号:16727800(2014)001004303

作者简介作者简介:赵姣珍(1983-),女,硕士,贵州民族大学人文科技学院讲师,研究方向为矩阵理论及应用;卢昌义(1988-),男,贵州民族大学人文科技学院学生,研究方向为信息与计算科学。

0 引言

在许多实际问题中,问题解决常常归结为解非线性方程,这里可以是代数多项式,也可以是超越函数,而非线性方程的精确求解一般非常困难。随着科学的高速发展和计算机的广泛应用,这类问题越来越多地被提出来。与线性方程相比,非线性方程的解法无论是理论上还是解法上都没有线性方程成熟有效。

1 用二分法解非线性方程和智能分析的MATLAB实现与应用

1.1 用二分法解非线性方程

例1:用二分法求方程f(x)=x3-x-1=0在区间[1,1.5]内的实根,要求误差不超过0.005。

解二分的次数k>ln(1.5-1)-ln(0.01)ln2=5.644。

此时,f(1)0,迭代建立表1,得到结果。

1.2 二分法智能分析的MATLAB实现与应用

1.2.1 实现过程

(1)初值的选定。在Command运行窗口中输入以下代码:

x=1:0.01:1.5;y=x.^3-x-1;plot(x,y),grid on可以画出本函数的图像如图1所示。

图1 函数图像

据图像分析可知函数图像在[1.3,1.45]函数值趋于0 ,故初值可选为1.3,初值区间可选为[1.3,1.35]。这样可方便函数的求解,也可减少迭代的步骤。(2)迭代函数的求解。为了更具说服力,表明程序的可行性,迭代区间仍选[1,1.5],说明程序在较宽泛的区间也能够迭代出函数值,也即可求出根。用Matlab编写程序实现,在Matlab中保存为:bisection.m建立M文件。在Command运行窗口输入以下代码:

fx='x^3-x-1';bisection(f,1,1.5,20,0.005)即可得到运行结果一,如图2所示。

图2 运行结果一

1.2.2 结果分析

通过以上的运行结果可知:Matlab迭代的结果完全与人工算法相符,清楚地显示了整个迭代过程中值的变化,并且精度较人工的算法提高了很多。本方法凭借其智能化的解法具有简便、有效、快捷、易用的优点,适合于任何非线性方程,从而大大地解决人们生活中的这类问题。

2.2 Newton迭代法的智能分析MATLAB实现与应用

2.2.1 实现过程

(1)初值的选定。在Command运行窗口中输入以下代码:

x=-1:0.01:1.5;y=x.*exp(x)-1;plot(x,y),grid on

可以画出本函数的图像如图4所示。

图5 运行结果三

2.2.2 结果分析

通过以上运行结果可知:Matlab迭代的结果与人工算法完全相符,而且比原结果更精确。在此,非常清楚地显示了数据在整个过程中的变化,方便我们对数据的处理与研究,为数据的追踪提供了可能。我们知道Newton迭代法是解决非线性方程最好的方法,所以本程序以Newton迭代法思想的优越性结合计算机的强大处理性能,便能够更快、更智能化地得到想要的结果,大大解决了演算时各种不必要的错误与问题,更有效地完成方程的解。

据图5可知,迭代到第3步即得x的值:x3=0.567 143 278 219 854≈x*

3 验证可行性

利用例1验证本程序的正确性,在Command运行窗口输入以下代码:

结果分析:通过与图1进行对比分析可知:(1)Newton迭代法的优越性得到了非常充分的证明,因为通过图2可知二分法需要迭代7步才可以得到结果:x7=1.324 218 750≈x*,而Newton迭代法仅需3步迭代即可得到结果:x3=1.324 293 385 881 770≈x*。

优越性说明:对于一个迭代法的优越性判断,本文将以以下几点作为基准:①收敛性的快慢,主要表现在迭代步数的多少来决定,如解决例1时,二分法需要7步,而Newton迭代法仅需要3步;②计算机计算的快慢;③真实值x*与迭代值xk的精度Ψ的差值大小决定,越小的越好,即Ψ=|xk-x*|。(2)二分法与Newton迭代法的正确性即可行性也得到很好的证明,因为它们在解决非线性方程问题例1上,二分法的迭代值x7=1.324 218 750≈x*;Newton迭代法的迭代值x3=1.324 293 385 88 177 0≈x*,所以x7≈x3≈x*。

参考文献参考文献:

[1] 张诚坚.计算方法[M].北京:高等教育出版社,2008.

[2] 赵静.数学建模与数学实验[M].北京:高等教育出版社,2008.

[3] 石辛民.基于MATLAB的实用数值计算[M].北京:北方交通大学出版社,2006.

[4] 李庆扬.数值分析复习与考试指导[M].北京:高等教育出版社,2000.

[5] 关治,陆金甫.数值分析基础[M].北京:高等教育出版社,1998.

上一篇:一种基于语义的Web挖掘方法研究 下一篇:基于Randon与Ridgelet变换的图像水印算法