找回密码
 注册
关于网站域名变更的通知
查看: 861|回复: 1
打印 上一主题 下一主题

MATLAB求解方程之fsolve(Optimization Toolbox)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-24 10:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
fsolve 可以求解多元方程,用法和 fzero 类似。 fsolve 的常用形式:
  • x = fsolve(fun,x0)
  • [x,fval] = fsolve(fun,x0)
    2 N# Z% u, }3 j! \
其中 fun 为函数句柄, x0 为搜索初值, fval 为求解误差。
  • %例:求解方程组 x+y = 1, x-11y = 5
  • eq = @(x)[x(1)+x(2)-1;x(1)-11*x(2)-5];
  • [sol,fval] = fsolve(eq,[1,1])2 w# t9 D! Z) {- c
这里对于方程的的输入需要采用矩阵的形式,其中 x(1) 代表 x , x(2) 代表 y 。有时候变量较多时可能会容易混淆,这里提供另一种方法,用符号变量表达方程再利用 matlabFunction 转化为函数句柄:
  • syms x y
  • eq1 = x+y-1;
  • eq2 = x-11*y-5;
  • eq1 = matlabFunction(eq1);   %将符号函数转化为函数句柄
  • eq2 = matlabFunction(eq2);
  • eq = @(x)[eq1(x(1),x(2)); eq2(x(1),x(2))];
  • [sol,fval] = fsolve(eq,[1,1]): R+ S; ]( n* o7 c- D) ?5 L0 o
结果与之前相同,但不容易出错。求得的解以矩阵形式返回给 sol ,即 sol 的第一个值求解的是 x(1) ,sol 的第二个值求解的是 x(2) 。 * z( N3 V  {/ b  v& Z1 ~! ?
fsolve 要求求解的函数必须是连续的,而且成功求解时,fsolve 只能给出一组根。缺省情况下,trust-region dogleg 算法只能用于系统方程是方阵的情况,而 Levenberg-Marquardt 算法没有此限制。
  T7 K) V  C0 n: W/ x新版本的 MATLAB 中关于此函数还有多个参数的形式,读者可以参考相关的 help。
( C& d" G0 K- e; Z8 K/ V
8 ?3 q+ ~( `; M. q: i

该用户从未签到

2#
发表于 2020-12-24 13:17 | 只看该作者
MATLAB求解方程之fsolve(Optimization Toolbox)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-22 13:52 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表