matlab用solve求解时如何限定解的范围?

我用solve函数解这个超越方程1+exp(-60*x)*(-60*x-1)-0.3=0得到的只有一个负数解,这个方程肯定是有正数解的,而我想要正数解,怎么办?
用其他函数解决也行!

>> fun=inline('1+exp(-60*x)*(-60*x-1)-0.3','x');[x,f,h]=fsolve(fun,0.1)
x =
-0.0104
f =
6.6549e-011
h =
1
>> fun=inline('1+exp(-60*x)*(-60*x-1)-0.3','x');[x,f,h]=fsolve(fun,0.2)
x =
0.0183
f =
-2.0851e-010
h =
1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-05
是的,你的这个超越方程有2个解,一正一负,这没问题的,选一个就是了:
clear all;clc;
y=solve('1+exp(-60*x)*(-60*x-1)-0.3');
y=eval(y);
y(2)
----------------
ans =
0.0183追问

谢谢回答。你的代码我复制在了一个新script里面并运行,出现下面的提示。( baidu是文件名)
Index exceeds matrix dimensions.
Error in baidu (line 5)
y(2)
我的MATLAB是2011b版本

追答

是吗?我的是2007,这个应该会不会有问题吧,但涉及到版本,就不是很清楚了
反正我的运行没问题。

本回答被提问者和网友采纳
相似回答