24小时热门版块排行榜    

查看: 1670  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

bingshan2012

木虫 (正式写手)

[求助] 用matlab求解方程已有2人参与

请问怎么用matlab求解方程x*ln(550/x)=80

发自小木虫Android客户端
回复此楼

» 收录本帖的淘帖专辑推荐

程序

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

引用回帖:
8楼: Originally posted by bingshan2012 at 2016-08-06 22:13:09
这个函数最后的1和500分别指什么
...

fsolve(fun,x0)函数的意思是在搜索方程的一个最靠近x0值的解。
首先画出函数图像,ezplot('x*log(500/x)-80',[0 500]),可以观察到图像存在两个零点。分为位于几十和几百的位置上。当然函数图像画的时候,一定要选择宽范围作图,这样能准确判断零点个数和大概取值范围。
有了上面的判断,就可以任意这是两个靠近零点的数值作为解方程的初始值,然后调用fsolve来在不同的零点值附近搜索准确的数值解。

一般复杂的方程,建议都是先画图再求解。直接调用MATLAB自带的函数求解不能针对所有的方程。可能给出来的解你都看不懂,或者是复数解。solve函数针对于线性的方程组求解还行,不过高次方程用solve求解容易出现复数解。还是建议用fsolve函数求解。这个函数求解的领域更宽范围,不过需要给出合适的初始值,所以预判函数零点个数与零点取值范围尤为重要

» 本帖已获得的红花(最新10朵)

没有极限,只有超越!
9楼2016-08-07 14:52:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

g57410000

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
bingshan2012: 金币+100, ★★★★★最佳答案 2016-08-05 15:53:12
输入以下即可,具体参看图片

x=solve('x*log(500/x)=80','x')

解: 411.6984
用matlab求解方程
捕获.JPG

» 本帖已获得的红花(最新10朵)

微信公众号acoustic-world
2楼2016-08-05 08:04:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
ben_ladeng: 金币+2, 谢谢分享经验 2016-08-08 11:19:57
x*ln(550/x)=80
x*ln(550/x)-80 = 0

>> syms x
>> y=solve(x*log(550/x)-80)
y =
550*exp(lambertw(0, -8/55))

參考:
http://www.cc.ntut.edu.tw/~jcjeng/Matlab_Symbolic.pdf
http://www.matlabsky.com/thread-3659-1-1.html
3楼2016-08-05 08:10:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bingshan2012

木虫 (正式写手)

送红花一朵
引用回帖:
2楼: Originally posted by g57410000 at 2016-08-05 08:04:29
输入以下即可,具体参看图片

x=solve('x*log(500/x)=80','x')

解: 411.6984

捕获.JPG

为什么我的输入进去显示这个
用matlab求解方程-1



发自小木虫Android客户端
4楼2016-08-05 15:47:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见