声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1001|回复: 4

[编程技巧] 请求高手指点迷津

[复制链接]
发表于 2007-4-3 20:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
f(a)=11.05-0.0167*(2+398*a^2)^(1/2)+1.499*a^2-0.0042*(994+9010*a^2)^(1/2)-0.0119*(730+1770*a^2)^(1/2)-0.04896*(214+186*a^2)^(1/2)-0.208*(77+23*a^2)^(1/2)-0.0808*(9390+612*a^2)^(1/2)
请问,我想求这个函数达最小值时,a的值应该为多少,我应该怎么编程实现啊?
请高手指点,非常感谢!

[ 本帖最后由 xinyuxf 于 2007-7-22 12:09 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-4-3 20:42 | 显示全部楼层
最简单的方法就是指定搜索区间,一定步长搜索。或者解f'(a)的零点,从中选择最小值点。。

评分

1

查看全部评分

发表于 2007-4-4 09:18 | 显示全部楼层
提示:
先画图,可发现两个解;
然后用fminunc求解,可得解为:-0.7253和0.7253.

评分

1

查看全部评分

 楼主| 发表于 2007-4-4 10:55 | 显示全部楼层
我知道应该对它求导,可是这么麻烦的式子,我用matlab编程,编出来的程序运行不了,请问您能不能帮我解一下啊。我为了简化计算机的工作,手工给它化简了一下,化简完之后的式子为
(3.8405+0.2495*a^2)(-0.5)+(3.3639+1.0048*a^2)(-0.5)+(2.5808+2.2431*a^2)(-0.5)+(1.6507+4.0023*a^2)(-0.5)+(0.6861+6.2439*a^2)+(-0.5)(0.0454+9.029*a^2)(-0.5)-2.9975=0'
上边这个式子是已经求完导数了,现在只需要解这个方程,可是我不会解,请大家指教,不胜感激!!!!
发表于 2007-4-7 15:16 | 显示全部楼层

回复 #1 dingyufan 的帖子

给你来个简单的求解方法:
x = fminunc(inline('11.05-0.0167*(2+398*a^2)^(1/2)+1.499*a^2-0.0042*(994+9010*a^2)^(1/2)-0.0119*(730+1770*a^2)^(1/2)-0.04896*(214+186*a^2)^(1/2)-0.208*(77+23*a^2)^(1/2)-0.0808*(9390+612*a^2)^(1/2)'),1)

解得
x =

    0.7250

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-13 01:56 , Processed in 0.059715 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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