matlab题目:求f(x,y)=3x2+2xy+y2在[1,1]附近的最小值。写出编程过程

注:字母后面的2是平方的意思1楼这个不行呀... 注:字母后面的2是平方的意思
1楼这个不行呀
展开
 我来答
廖嘉丽咸丽
2019-03-02 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:612万
展开全部
其实这个问题不用matlab直接就可以解出来,方法如下:
f(x,y)=2x^2+(x+y)^2,
设x+y=z,有
f(x,y)=g(x,z)=2x^2+z^2,
则原问题等价于求g(x,z)在(1,2)点附近的最小值,
从该式的形式观察即可知当x=y=z=0时,f与g同时取得其最小值为0。
另外,从一阶必要条件来看(f'=0,即kkt点),对f求导也可知它只有一个极值点,即(0,0)点。
希望这个思路能够帮助你。
wuai408214141
2008-11-06 · TA获得超过313个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:164万
展开全部
高等数学的解法:
令z=3*x.^2+2*x.*y+y.^2;
solve('diff(z,x)=0,diff(z,y)=0')就可以求出x,y的值
如果看不到结果的话就用disp(ans.x)和disp(ans.y).这个和你用的matlab的版本的数据结构有关。然后将x,y代入就可以了。我求出的是当
x=0
y=0
时,最小值也为0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
2008-11-05 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2819万
展开全部
他是matlab 7的。

你如果用低版本的话,不妨:
f=inline('3*x(1)^2+2*x(1)*x(2)+x(2)^2');
x=fminsearch(f,[1,1])
我这里得到的是:
x =

1.0e-004 *

-0.0675 0.1715
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greatdju
2008-11-05 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4195万
展开全部
x=fminsearch(@(x)x'*[3 1;1 1]*x,[1;1])

真的不行吗?那这样行不行
x=fminsearch(@(x)3*x(1)^2+2*x(1)*x(2)+x(2)^2,[1;1])

上面两个程序运行结果一样,都是
x =

1.0e-004 *

-0.0675
0.1715

inline好像比@出现的更晚,@都不行估计inline也行不了,楼主到底用的是哪个版本的?6.5以上应该都能用啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式