24小时热门版块排行榜    

查看: 1660  |  回复: 9

bingshan2012

木虫 (正式写手)

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

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

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

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

程序

» 猜你喜欢

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

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

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的回帖

bingshan2012

木虫 (正式写手)

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

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

解: 411.6984

捕获.JPG

知道了 谢谢

发自小木虫Android客户端
5楼2016-08-05 15:52:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chendequan

铁虫 (小有名气)

27.625592507886746123351750202567*log(500/27.625592507886746123351750202567)

ans =

    80
QQ:516477448,真心帮助解决MATLAB相关问题,提供详细资料,Word文档明确具体问题及要求,尽力而为!
6楼2016-08-05 20:17:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

这个方程有两个解,你可以通过画函数图像看出来
x1=27.6256  x2=411.6984

x1 = fsolve(@(x)x*log(500/x)-80,1)
x2 = fsolve(@(x)x*log(500/x)-80,500)

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

没有极限,只有超越!
7楼2016-08-06 17:55:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bingshan2012

木虫 (正式写手)

送红花一朵
引用回帖:
7楼: Originally posted by 512095518 at 2016-08-06 17:55:16
这个方程有两个解,你可以通过画函数图像看出来
x1=27.6256  x2=411.6984

x1 = fsolve(@(x)x*log(500/x)-80,1)
x2 = fsolve(@(x)x*log(500/x)-80,500)

这个函数最后的1和500分别指什么

发自小木虫Android客户端
8楼2016-08-06 22:13:09
已阅   回复此楼   关注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的回帖

bingshan2012

木虫 (正式写手)

送红花一朵
引用回帖:
9楼: Originally posted by 512095518 at 2016-08-07 14:52:16
fsolve(fun,x0)函数的意思是在搜索方程的一个最靠近x0值的解。
首先画出函数图像,ezplot('x*log(500/x)-80',),可以观察到图像存在两个零点。分为位于几十和几百的位置上。当然函数图像画的时候,一定要选择宽范 ...

明白了 灰常感谢

发自小木虫Android客户端
10楼2016-08-07 18:22:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bingshan2012 的主题更新
信息提示
请填处理意见