楼主: matlab-007
290 0

[学习分享] fsolve、fzero、fmincon、fminbnd、nlinfit、lsqcurvefit等含参数问题 [推广有奖]

  • 0关注
  • 37粉丝

已卖:744份资源

学术权威

17%

还不是VIP/贵宾

-

威望
1
论坛币
200331 个
通用积分
262.9811
学术水平
145 点
热心指数
150 点
信用等级
89 点
经验
55917 点
帖子
7479
精华
0
在线时间
846 小时
注册时间
2014-10-27
最后登录
2025-10-14

楼主
matlab-007 发表于 2015-4-6 15:54:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
含参数非线性方程组求解方法总结
以fsolve求解方程组a*log(x1)+x2^2-5=0;exp(x1)+b*sin(x2)-10=0为例。
方法一:全局变量法
  • function glo
  • global a b
  • %主函数定义全局变量
  • a=3;
  • b=4;
  • x0=[1 1];
  • x=fsolve(@tes,x0)
  • function y=tes(x)
  • global a b
  • %子函数定义全局变量
  • y=[a*log(x(1))+x(2)^2-5;
  •     exp(x(1))+b*sin(x(2))-10];
  • %以上存为glo.m
  • %在命令窗口输入
  • glo
  • %得到:
  • Optimization terminated: first-order optimality is less than options.TolFun.
  • x =
  •    1.80833796874946   1.79520903756128


[color=rgb(51, 102, 153) !important]复制代码

方法二:嵌套函数法
注:此方法在MATLAB7.0以上版本可用
  • function nesti
  • function y=tes(x)
  • %使用嵌套函数时,嵌套函数可以直接调用主函数变量
  • y=[a*log(x(1))+x(2)^2-5;
  •     exp(x(1))+b*sin(x(2))-10];
  • end
  • %使用嵌套函数时,嵌套函数和主函数都必须用end表示函数结束
  • a=3;
  • b=4;
  • x0=[1 1];
  • x=fsolve(@tes,x0)
  • end
  • %以上存为nesti.m
  • %在命令窗口输入
  • nesti
  • %得到:
  • Optimization terminated: first-order optimality is less than options.TolFun.
  • x =
  •    1.80833796874946   1.79520903756128


[color=rgb(51, 102, 153) !important]复制代码

方法三:没有名字(推荐使用方法)
  • function unname
  • a=3;
  • b=4;
  • x0=[1 1];
  • x=fsolve(@tes,x0,[],a,b)
  • %[]表示fsolve的输入参数options采用默认值
  • function y=tes(x,a,b)
  • y=[a*log(x(1))+x(2)^2-5;
  •     exp(x(1))+b*sin(x(2))-10];
  • %以上存为unname.m
  • %在命令窗口输入
  • unname
  • %得到:
  • Optimization terminated: first-order optimality is less than options.TolFun.
  • x =
  •    1.80833796874946   1.79520903756128




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:curvefit fmincon nlinfit fsolve curve function 方程组

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 21:17