软件OpenLu中的解方程函数

本文介绍了OpenLu软件中用于解方程的几个关键函数,包括对分法求非线性方程的实根、拟牛顿法求非线性方程组一组实根以及优化库LuOpt中的iFind、Find和Opt函数。通过实例展示了如何使用这些函数解决不同类型的方程和方程组问题。
摘要由CSDN通过智能技术生成

软件OpenLu中的解方程函数

 

  >>> [OpenLu的使用方法]

 

  欢迎加解方程\优化\拟合QQ群:562025053

 

    方程(组)的求解,难易程度差别较大。在OpenLu中,普通的方程(组)可借助LuMath库中的拟牛顿法netn和对分法btFindRoot求解,难度大的方程(组)须借助优化库LuOpt中的iFindFindOpt函数求解。

    (1)math::btFindRoot(f,a,b,h,k,eps):对分法求非线性方程的实根

    f:自定义一元函数句柄。函数自变量不能重新赋值。
    a,b:求根区间的左端点和右端点(b>a)。
    h:搜索求根时采用的步长(h>0)。
    k: 可能的实根个数。可缺省,缺省值为10。
    eps:控制精度(eps>0)。可缺省,缺省值为1e-6。

    返回值:返回一个数组(存放搜索到的实根),或者返回nil。若返回数组的长度为k,则有可能在求根区间[a,b]内的实根未搜索完。

    例子:

f(x)=x^6-5*x^5+3*x^4+x^3-7*x^2+7*x-20;  //函数定义
math::btFindRoot[@f,-2.,5.,0.2].o[];   
//函数o用于输出一个对象

    结果:

-1.40246 4.33376

    (2)math::netn(f,x,eps,t,h,k):求非线性方程组一组实根的拟牛顿法

    f:自定义二元或2n(n>1)元函数句柄,由用户自编。

    如果f是二元函数,则两个参数为等长的一维数组:

f(x,y)=   //二元函数,x[i]为自变量,y[i]为方程右端点函数值
{
    y[0]=f1(x[0],x[1],...,x[n-1]),
    y[1]=f2(x[0],x[1],...,x[n-1]),
    ... ...
    y[n-1]=fn(x[0],x[1],...,x[n-1])
};

    或者:

f(x1,x2,...,xn,y1,y2,...,yn)=   //2n元函数,xi为自变量,yi为方程右端点函数值
{
    y1=f1(x1,x2,...,xn),
    y2=f2(x1,x2,...,xn),
    ... ...
    yn=fn(x1,x2,...,xn)
};

    x:双精度实型一维数组,长度不小于n,存放一组初值,返回方程组的一组实根。
    eps:控制精度(eps>0ÿ

本资源涵盖多元方程组、非线性方程和常微分方程的软件组合,介绍如下: 线性方程组的数值法: 线性方程组亦即多元一次方程组。在自然科学与工程技术,很多问题的决常常归结为线性方程组,如电学的网络问题,船体数学放样的建立三次样条函数问题,机械和建筑结构的设计和计算等等。因此,如何利用电子计算机这一强有力的计算工具去求线性方程组,是一个非常重要的问题。线性方程组的法分直接()法{是指在没有舍入误差的假设下,经过有限步运算即可求得方程组的精确的方法。}和迭代()法{是用某种极限过程去逐步逼近线性方程组精确的方法,即是从一个初始向量x0出发,按照一定的迭代格式产生一个向量序列xk,使其收敛到方程组A*x=b的}。该部分就是针对线性方程组求而设计的,内容包括:线性方程组的直接法:Gauss消去法、Gauss列主元消去法、Gauss全主元消去法、列主元消去法应用『列主元求逆矩阵、列主元求行列式、矩阵的三角分』、LU法、平方根法、改进的平方根法、追赶法(三对角)、列主元三角分法;线性方程组的迭代法:雅可比迭代法、高斯-塞德尔迭代法、逐次超松驰迭代法;迭代法的收敛性『正定矩阵判断、向量范数、矩阵范数、严格对角站优矩阵判断』。 非线性方程的数值法: 在科学研究与工程技术常会遇到求非线性方程f(x)=0的问题。而方程f(x)是多项式或超越函数又分为代数方程或超越方程。对于不高于四次的代数方程已有求根公式,而高于四次的代数方程则无精确的求根公式,至于超越方程就更无法求其精确了。因此,如何求得满足一定精度要求的方程的近似根也就成为了广大科技工作者迫切需要决的问题。该部分就是针对这一问题而设计的,内容包括:二分法、迭代法、迭代加速法、埃特金加速法、牛顿切线法、弦截法。 常微分方程的数值法: 常微分方程的求问题在实践经常遇到,但我们只知道一些特殊类型的常微分方程的。在科学和工程问题遇到的常微分方程的往往很复杂,在许多问题,并不需要方程的表达式,而仅仅需要获得在若干点的就算即可。因此,研究常微分方程的的数值就很有必要。该部分就是针对这些而设计的,内容包括:欧拉(Euler)方法、龙格库塔(Runge-Kutta)方法、线性多步方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值