matlab解非线性方程(组)的数值方法
2014-01-15 19:32
316 查看
matlab中解非线性方程(组)涉及两个函数: fzero和fsolve。
这两个函数的区别在于:fzero仅用于求解一元标量函数的零点;而fsolve可以求解多元矢量函数的零点,也即可以用于求解方程组。
这两个函数共同点在于:都使用迭代算法求解,因此必须给定初始值。
两个函数的原型都可以概括为:X = solver(FUN,X0,
...); 其中,FUN是函数句柄,X0是初始值。solver可以代表fzero或fsolve。
举例说明FUN对应的函数的格式:
一元标量函数,可以直接定义匿名函数:
f1 = @(x) exp(x+1);
当然可可以用m文件。
多元矢量函数则必须用m文件来定义:
function Y = fn(X)
Y = zeros(3, 1); % 最好返回列向量
Y(1) = X(1)+X(2)+X(3);
Y(2) = X(1)*X(2)/X(3);
Y(3) = exp(X(1))+sin(X(2)+X(3));
注意,FUN是函数句柄;匿名函数在引用时直接写函数句柄的名称(”f1“),而m函数则必须在函数名前加@转换成句柄("@fn")。
这两个函数的区别在于:fzero仅用于求解一元标量函数的零点;而fsolve可以求解多元矢量函数的零点,也即可以用于求解方程组。
这两个函数共同点在于:都使用迭代算法求解,因此必须给定初始值。
两个函数的原型都可以概括为:X = solver(FUN,X0,
...); 其中,FUN是函数句柄,X0是初始值。solver可以代表fzero或fsolve。
举例说明FUN对应的函数的格式:
一元标量函数,可以直接定义匿名函数:
f1 = @(x) exp(x+1);
当然可可以用m文件。
多元矢量函数则必须用m文件来定义:
function Y = fn(X)
Y = zeros(3, 1); % 最好返回列向量
Y(1) = X(1)+X(2)+X(3);
Y(2) = X(1)*X(2)/X(3);
Y(3) = exp(X(1))+sin(X(2)+X(3));
注意,FUN是函数句柄;匿名函数在引用时直接写函数句柄的名称(”f1“),而m函数则必须在函数名前加@转换成句柄("@fn")。
相关文章推荐
- matlab编程与工程应用(第二版) 第十五章 曲线拟合 笔记
- [转帖]MATLAB曲线绘制及颜色类型
- C直接调用Matlab提供的C接口和库
- VC调用matlab中定义的.m文件中的函…
- KNN算法matlab函数 ClassificationKNN.fit
- matlab编程与工程应用(第二版) 第十三章 基本统计 集合排序 笔记
- Matlab mex 命令行参数详解
- matlab 中eigs的结果不同问题解决方案
- matlab编程与工程应用(第二版) 第十二章 解线性方程组 笔记
- MATLAB中的randi函数
- matlab 三维曲线曲面 meshgrid and surf
- Matlab删除cell数组中全为NaN的行和列
- C++实现类似Matlab的colormap Jet(灰度图生成彩色热度图)
- matlab编程与工程应用(第二版) 第十一章 matlab作图 笔记
- matlab imadjust 用 opencv改写
- 套用今天的签名“最新的VS+最新的MATLAB+最新的WINDOWS=无尽的烦恼 ”,用了一天的时间去配置相关的环境,确实很囧。好在现在问题解决了,特发布过程如下,希望能给有需要的朋友带来帮助。
- matlab 基础知识
- MATLAB中EKF/UKF
- matlab图像算法源码
- matlab的并行化Parallel MATLAB with openmp mex files