| 查看: 609 | 回复: 6 | |||
| 当前主题已经存档。 | |||
[交流]
【求助】请教以下为啥出错?
|
|||
|
新手,正在学习使用matlib,输入以下代码 >> syms d; >> light2=@(x,y,d) 75./(4*pi*((x-d).^2+(y-2).^2+9)); >> eqn=@(d) light2(0,0,d)+light2(0,0,10-d)-light2(5,0,d)-light2(5,0,10-d); >> light2y=@(x,y,d) 75./(4*pi*((x-5).^2+(y-d).^2+9)); >> eqny=@(d) light2y(0,0,d)+light2y(0,0,4-d)-light2y(0,2,d)-light2y(0,2,4-d); >> dint=fzero(eqny,[0 2]) ??? Error using ==> fzero The function values at the interval endpoints must differ in sign. 但是: >> dint=fzero(eqn,[0 2]) dint = 1.4410 我实在搞不懂为什么,请帮忙解答,谢谢谢谢! |
» 猜你喜欢
全日制(定向)博士
已经有5人回复
假如你的研究生提出不合理要求
已经有10人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
实验室接单子
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
2楼2009-06-01 22:33:00
sitonyl
铁杆木虫 (文坛精英)
- 应助: 33 (小学生)
- 金币: 12935.9
- 红花: 3
- 帖子: 10448
- 在线: 338.8小时
- 虫号: 722261
- 注册: 2009-03-14
- 性别: GG
- 专业: 导航、制导与传感技术

3楼2009-06-02 08:12:10
★
sunxiao(金币+1,VIP+0):鼓励一下 6-4 02:52
sunxiao(金币+1,VIP+0):鼓励一下 6-4 02:52
|
谢谢楼上指教。继续请教: 这个问题的来源是解答在10*4*3的房间内确定4个100w灯泡在天花板上的安装位置使得亮度最佳。 我的想法是假设4个灯泡安装位置对称,所以可以先确认在x方向的最佳位置,然后再确认y轴方向的最佳位置,这样得到的(x,y,0)就是灯泡的安装位置。 对亮度最佳的理解是所有选择中最暗的点亮度最大。在x轴方向随着灯泡位置的不同会出现两个暗点,即(0,0)和(5,0),这样可以找到一个零解,x=1.4410. 但y轴方向没有零解,就有问题了! 是不是我的解题思路就是错的?当然,对matlib不熟也是一个原因,不知道如果把x和y同时考虑的方程怎么写。请各位大侠指教。 |
4楼2009-06-02 16:26:09
★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
kuhailangyu(金币+2,VIP+0):谢谢回帖交流 6-5 10:35
小木虫(金币+0.5):给个红包,谢谢回帖交流
kuhailangyu(金币+2,VIP+0):谢谢回帖交流 6-5 10:35
|
X = FZERO(FUN,X0), where X0 is a vector of length 2, assumes X0 is an interval where the sign of FUN(X0(1)) differs from the sign of FUN(X0(2)). An error occurs if this is not true. Calling FZERO with an interval guarantees FZERO will return a value near a point where FUN changes sign. 你给的fzero(eqny,[0 2])中,eqny(0)和eqny(2)结果的符号相同。 应该不同才可以。 |

5楼2009-06-05 09:02:55

6楼2009-06-05 09:07:49
★ ★
sunxiao(金币+2,VIP+0):谢谢分享,欢迎常来 6-6 01:16
sunxiao(金币+2,VIP+0):谢谢分享,欢迎常来 6-6 01:16
|
我放弃了先前的先求x,再求y的想法。但前提“四个灯泡位置对称安放”不变。 以下是新写的程序: % define (d,t) as the position of the bulb syms d; syms t; illm=0;tillm=0;pd=0;pt=0; light4=@(x,y,d,t) 100./(4*pi*((x-d).^2+(y-t).^2+9)); [x,y]=meshgrid(0:0.1:10,0:0.1:4); for d=0:0.1:5 for t=0:0.1:2 tillm=min(light4(x,y,d,t)+light4(x,y,10-d,t)+light4(x,y,d,4-t)+light4(x,y,10-d,4-t)); if illm pd=d;pt=t; end end end 这个是个比较笨的办法,基本就是用了穷举的方法算出来的。有没有更好的办法来解决这个问题,请大家指教。 |
7楼2009-06-05 09:53:06












回复此楼