首页 > 编程知识 正文

用solve函数求解方程组,matlab解超越方程

时间:2023-05-03 13:17:05 阅读:172423 作者:3368

标签:

MATLAB作为科研人员的忠实伙伴,求解各种复杂方程的性能与其他工具相比,自然不允许有很多。 在这次的盘点中,计算MATLAB中solve和fsolve两个函数在解方程式中的优劣。

1 .解算函数

语法:

s=solve(eqn,var ) ) ) )。

s=solve(eqn,var,Name,Value ) )。

y=Solve(eqns,vars ) ) ) )。

y=solve(eqns,vars,Name,Value ) )。

[y1,yn]=Solve(eqns,vars ) )。

([y1,yn]=Solve(eqns,vars,Name,Value ) )。

([y1,yN,parameters,conditions]=solve(eqns,vars,' ReturnConditions ',true ) ) ) ) )。

说明:

求解s=solve(eqn,var )变量var的方程式eqn。 如果未指定var,symvar函数将确定要解析的变量。 例如,solve(x1==2,x )的解决方案x 1=2是x。

范例

s=solve(eqn、var、Name、Value )使用一个或多个Name、Value为参数指定的附加选项。

范例

y=Solve(eqns,vars )解析方程eqns的变量vars,并返回包含解决方案的结构。 如果不指定vars,solve将使用symvar查找要解析的变量。 在该情况下,symvar发现的变量的数量与等式的个数eqns相等。

范例

y=solve(eqns、vars、Name、Value )使用一个或多个Name、Value为参数指定的附加选项。

范例

[y1,yn]=Solve(eqns,vars )解决了变量vars的eqns方程。 解决方案被分配给y1,yN的变量。 如果不指定变量,solve将使用symvar查找要解析的变量。 此时,symvar发现的变量数与输出参数数n相等。

[y1,yn]=solve(eqns,vars,Name,Value ) ]参数使用由一个或多个名称指定的附加选项Name,Value。

范例

[y1,yN,parameters,conditions]=solve(eqns,vars,' ReturnConditions ',true )表示指定解决方案的参数和解决方案

解算函数的极限

关于非多项式方程,只能求出一个解

关于稍微复杂的方程式,求解的结果会出现很大的误差

求解复杂多项式方程可能会产生错误的求解结果

求解复杂多项式方程时,可能无法求解,需要花费时间

超过方程,只能返回一个解;

如果超过方程式,就有可能恢复到错误的解

2.f解算函数

语法(只列出两种) )。

x=fsolve(fun,x0 ) ) ) ) ) )。

[x,fval,exitflag]=fsolve(fun,x0,options ) ]

定义方程式(组)的fun:函数

x0:计算初始值

x:求解结果(方程根) )。

fval:将计算结果x带入方程式(组) fun、对应的值、即fun ) x

exitflag:返回方程解的结果的状态。 有关详细信息,请参阅help文档

options:方程的求解设定

MATLAB fsolve函数总结

fsolve可以求解方程(组)的实数根和复数根

fsolve采用迭代的数值算法,速度快

给定不同的初始值,可以求出不同的根(局部寻根) )

如果初始值不好,解决可能会失败

关于如何给出初始值的问题

a )一元/二元方程式(组)可以图解法得到根的个数,粗略推测根的值作为fsolve的初始值使用

b )根据方程中变量的实际含义,适当给出初始值。 例如,时间/长度/质量等物理量应该大于0

c )通过更多的练习和积累经验,自然会获得更多的知识

总结:

请尽量避免使用solve函数

尽可能使用fsolve求解数值解

标签:

资料来源: https://blog.csdn.net/power1_ power2/article/details/82893867

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。