楼主: analysismath
1238 4

一个Matlab小问题! [推广有奖]

  • 6关注
  • 5粉丝

教授

3%

还不是VIP/贵宾

-

威望
0
论坛币
2361 个
通用积分
13.3707
学术水平
33 点
热心指数
56 点
信用等级
25 点
经验
31238 点
帖子
721
精华
0
在线时间
1007 小时
注册时间
2008-9-24
最后登录
2024-1-6

3论坛币
请问一下论坛里的Matlab牛人们:我想要max f(x, y) over x, 其中y=g(x)是来自于H(x, g(x))=0的解。麻烦的是,y=g(x)没有显示解,请问我如何做这个最大化的问题?

该问题具体的数学表达为:max f(x, g(x)) s.t. H(x, g(x))=0, 其中g(x)没有显示解。所以我的问题是如何写code来解这个最优化,调用
g(x)?

多谢先!

最佳答案

twomantou 查看完整内容

3# analysismath 先写一个m文件,定义你的g(x)函数,大概的写法就是 function y=g(x) y=fzero(H(x,g(x)), initial value) %当然你这里要考虑到底用那个solver end 然后再写一个m文件,定义你的f(x,g(x)).在这个m文件里引用你前面定义的g(x)函数。注意到最后你这个f函数事实上就是x的单变量函数。 最后,在你的主文件里面对f(x)进行最优化,找个合适的optimizer就好了。 需要注意的是,这东西运算量可不小,因为每次 ...
关键词:MATLAB matla atlab Atl 小问题 MATLAB

本帖被以下文库推荐

沙发
twomantou 发表于 2009-8-8 09:51:08 |只看作者 |坛友微信交流群
3# analysismath
先写一个m文件,定义你的g(x)函数,大概的写法就是

function y=g(x)
y=fzero(H(x,g(x)), initial value) %当然你这里要考虑到底用那个solver
end

然后再写一个m文件,定义你的f(x,g(x)).在这个m文件里引用你前面定义的g(x)函数。注意到最后你这个f函数事实上就是x的单变量函数。

最后,在你的主文件里面对f(x)进行最优化,找个合适的optimizer就好了。

需要注意的是,这东西运算量可不小,因为每次optimizer输入一个数值之后,fzero都要求一次解,所以做好心理准备
已有 1 人评分经验 论坛币 收起 理由
Xaero + 20 + 20 精彩帖子

总评分: 经验 + 20  论坛币 + 20   查看全部评分

使用道具

藤椅
twomantou 发表于 2009-8-8 09:58:14 |只看作者 |坛友微信交流群
最偷懒的笨方法应该是对g(x)做一个interpolation?

精确的方法,不管g(x)有没有显性解,反正输入x,H(x,g(x))=0能够返回一个唯一的g(x)对不?那就直接写一个m文件把这个对应关系建立起来,那不就是个g(x)函数了么?尽管依然没有显性解,但是在matlab里面就可以调用了吧?

使用道具

板凳
analysismath 发表于 2009-8-8 10:01:07 |只看作者 |坛友微信交流群
2# twomantou

能否说的再细一点?

每次输入一个x,是可以返回一个数值解g(x),但是我现在要找最优的x啊,总不能用穷尽的列举不同的x一个一个试吧?麻烦您说具体一点,谢谢!

使用道具

报纸
analysismath 发表于 2009-8-8 16:32:31 |只看作者 |坛友微信交流群
2# twomantou

十分感谢!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-21 09:55