广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    matlab方程求解

    来源:网络收集  点击:  时间:2024-05-07
    【导读】:
    01:119鸿茅药酒官方商城进店

    matlab是美国mathworks公司出的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

    但由于其功能的强大,对于初学者显得有些困难,下面,为广大初学者介绍下matlab如何求解方程。

    matlab方程求解有两种方法,符号求解和数值求解。

    1.solve

           通常在不确定方程是否有符号解的时候,推荐先使用solve进行尝试,因为solve相比于数值求解来说,它不需要提供初值,并且一般情况下能够得到方程的所有解。对于一些简单的超越方程,

    solve还能够自动调用数值计算系统给出一个数值解。solve的调用形式:

             S = solve(eqn1,eqn2,...,eqnM,var1,var2,...,varN)

             = solve(eqn1,eqn2,...,eqnM,var1,var2,...,varN)

    eq为符号表达式,var为指定的要求解的变量。如果不声明要求解的变量(第一和第三种形式),则matlab自动按默认变量进行求解,默认变量可以由symvar (eq)确定。

    例:求解方程组:x^2 + x*y + y = 3, x^2 - 4*x + 3 = 0

    matlab代码:

                         syms x y               %声明符号变量

                         eq1=x^2 + x*y + y-3

                         eq2=x^2 - 4*x + 3

                         =solve(eq1,eq2,x,y)

    2.fzero

           然而在很多情况下solve并不能求得方程的解析解,这时就可以采用数值法求解。

    数值求解法包括fzero和fsolve,其区别在于fzero只适用求解一元函数零点,而fsolve适用于求解多元函数零点(包括一元函数)。

           当求解一元函数零点时,推荐优先使用fzero,原因是fzero求解一元方程往往更容易,因为它不仅支持提供初值的搜索,还支持在一个区间上进行搜索。

    fzero的常用形式:

             x = fzero(fun,x0)

             = fzero(fun,x0)

    其中fun为函数句柄,x0为搜索初值,fval为求解误差。

    以一元方程sin(x)+cos(x)^2=0为例:

                   y=@(x)sin(x)+cos(x).^2    %这里采用匿名函数,也可以使用函数文件形式

                   =fzero(y,1)  %1为搜索初值

    如果方程有多个零点时,fzero只能根据你提供的初值求得最靠近初值的一个零点,如果希望求得多个零点的话,那么只能够通过改变初值来得到不同的零点。

    对于零点的选取,目前来说没有什么比较好的办法,只能够通过分析方程的性质,或者通过作图的方法去寻找一个比较靠近零点的初值。另外,fzero能够提供区间搜索,注意区间两端的端点函数值符号需要反向:

    加载中
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_701566.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 00:40:48  耗时:0.031
    0.0308s