怎样求解非线性方程组?如何使用MATLAB来求解
的有关信息介绍如下:MATLAB教学视频:非线性方程(组)在MATLAB中的求解方法,视频时长约100分钟,配合多个非线性方程(组)实例,全方位地讲解了非线性方程(组)在MATLAB里的求解方法。主要内容包括:图解法,solve符号求解法,以及fsolve数值求解方法,并对各种求解方法进行了总结。
教学内容
一元方程的图解法
二元方程组的图解法
图解法的局限性
多项式型方程的求解(solve)
solve 函数的局限性
非线性方程(组) 数值解的一般求法(fsolve)
fsolve函数总结
一元方程的图解法
绘制方程的曲线,然后找出对应的 t 值。在MATLAB 中绘制 f(t) 的曲线,以及 y = 0 的直线,相交点即 f(t) = 0 的根。
二元方程组的图解法
分别绘制两个方程的曲线,相交点即为方程组的解
图解法的局限性
仅适用于一元和二元方程的求解
目测选点,不够精确
无法求解方程的复数根
多项式型方程的求解,使用MATLAB的solve函数
1.一次求出多项式方程的所有根
2.结果为解析解
solve 函数的局限性
1.对于非多项式方程,只能求出一个解
2.对于稍许复杂的方程,求解结果出现很大误差
3.求解复杂的多项式方程时,可能会产生错误的求解结果
4.求解复杂的多项式方程时,可能无法求解,且非常耗时
MATLAB求解非线性方程(组)数值解的通用方法
fsolve函数的调用格式(仅列出两种)
x = fsolve(fun,x0)
[x,fval,exitflag] = fsolve(fun,x0,options)
fun: 函数,用于定义方程(组)
x0: 计算初值
x: 求解结果(方程的根)
fval: 将求解结果x 带入方程(组) fun,对应的值,即fun(x)
exitflag: 返回方程组求解结果的状态(详见help 文档)
options: 方程的求解设置
使用MATLAB fsolve函数,求解以下方程(组)的根
MATLABfsolve函数总结
1. fsolve可以求解方程(组) 的实数根和复数根
2. fsolve采用迭代的数值算法,速度快
3. 给定不同的初值,可以求得不同的根(局部寻根)
4. 初值给的不好,可能导致求解失败
5. 关于初值如何给定的问题
a) 一元/ 二元方程(组),通过图解法,可以得到根的个数,并粗略地估计出根的值,用做fsolve的初值
b) 根据方程组中变量的实际意义,合适地给出初值。例如,时间/ 长度/ 质量等物理量,应该大于0
c) 通过更多的练习和经验积累,自然会见多识广