Matlab自学笔记六十七:(编程实例)非线性方程组求解fsolve
1.说明
认识函数,fsolve,求解非线性方程(组),由于该类方程的复杂性,该函数使用寻优的迭代过程进行运算,寻找方程的近似解(对于一些方程,近似解精度较高,可以认为是精确解)。
需要注意,待求解的方程函数必须是连续的,如果方程有多个解,fsolve只能给出一个解;可以通过提供初始点的方式,获取期望范围的解。
2.编程示例
解方程组:
2*x - y - exp(-x) = 0
-x + y - exp(-y) = 0
程序如下:
%把以下程序复制到脚本文件中运行(很重要)
x0=[0 0];
opts=[];
x=fsolve(@fun,x0,opts)
function y=fun(x)
y=[2*x(1) - x(2) - exp(-x(1));
-x(1) + x(2)- exp(-x(2)) ];
end
运行结果:
方程已解。
fsolve 已完成,因为按照函数容差的值衡量,函数值向量接近于零,并且按照梯度的值衡量,问题似乎为正则问题。
<停止条件详细信息>
x =
0.7847 1.1132
说明,包含多个变量的情况,例如两个变量x和y,在写方程的时候,要转换思路,把两个变量看做一个变量的两个分量,如上程序,x和y使用新变量x中的x(1)和x(2)表达。
相关推荐
47.1 Matlab遗传算法概念、流程和编程案例
48.1 Matlab粒子群算法【原理】
45.1 Matlab深度学习之卷积神经网络(一个实例入门)
https://blog.csdn.net/freexyn/article/details/153527027?spm=1011.2124.3001.6209
https://blog.csdn.net/freexyn/article/details/153527027?spm=1011.2415.3001.10575&sharefrom=mp_manage_link算法代码讲座6:最小二乘法理论原理、典型案例与MATLAB实现
https://blog.csdn.net/freexyn/article/details/151901401?spm=1011.2415.3001.10575&sharefrom=mp_manage_linkMatlab自学笔记六十五:解方程的数值解法(代码速成)
https://blog.csdn.net/freexyn/article/details/149672081?spm=1011.2415.3001.5331Matlab自学笔记三十一:结构数组的创建、索引和预分配内存
https://blog.csdn.net/freexyn/article/details/139726571?spm=1011.2415.3001.5331Matlab自学笔记二:创建函数文件、函数语法定义、匿名函数、多元函数、局部函数等知识串联理解
https://blog.csdn.net/freexyn/article/details/126406074?spm=1011.2415.3001.5331Matlab自学笔记七:矩阵元素的合并、连接、提取、翻转、排序、平铺复制、提取对角线元素
https://blog.csdn.net/freexyn/article/details/127716558?spm=1011.2415.3001.5331End
