24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2251  |  回复: 6

八角寨

银虫 (著名写手)

[求助] 如何用matlab求方程 sin(2*x)=log10(x) 的解,谢谢。 已有1人参与

方程 sin(2*x)=log10(x) 有5个解, 如何用matlab求其数值解呢,谢谢。

利用 solve('sin(2*x)=log10(x)','x') 求助,答案不对。
请高手帮忙,谢谢。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
八角寨: 金币+9, ★★★★★最佳答案, 非常好,感谢版主。但如果是 sin(5*x)=log10(x),语句中最后的[0.1 1 2 3 4 5 6 7 8 8.5] 该如何改变?再次感谢。 2015-09-24 11:50:58
solve函数是解符号解的,既然要求数值解,用fsolve函数更合适。

clear all;clc
[x fval]=fsolve(@(x) sin(2*x)-log10(x),[0.1 1 2 3 4 5 6 7 8 8.5]);
x=round(1e6*x)/1e6;
x=unique(x)

求得五个数值解:

x =

    1.4846    3.4235    4.3651    6.7735    7.3312
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-09-24 08:43:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-09-24 08:43:29
solve函数是解符号解的,既然要求数值解,用fsolve函数更合适。

clear all;clc
=fsolve(@(x) sin(2*x)-log10(x),);
x=round(1e6*x)/1e6;
x=unique(x)

求得五个数值解:

x =

    1.4846    3.4235    ...

此时有15个解,代码如下:

clear all;clc
[x fval]=fsolve(@(x) sin(5*x)-log10(x),linspace(0.5,9.5,20));
x=round(1e6*x)/1e6;
x_answer=unique(x)
figure(1)
xx=linspace(0,10,100);
yy=sin(5*xx)-log10(xx);
plot(xx,yy,'b',[0 10],[0 0],'r')

代码绘出了该函数图形,蓝线和红线交点的个数,即解的个数。
计算结果,有15个:
x_answer =

  Columns 1 through 12

    0.6641    1.2780    1.8318    2.5988    3.0408    3.8963    4.2620    5.1858    5.4884    6.4724    6.7167    7.7592

  Columns 13 through 15

    7.9442    9.0516    9.1658
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2015-09-24 12:33:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-09-24 08:43:29
solve函数是解符号解的,既然要求数值解,用fsolve函数更合适。

clear all;clc
=fsolve(@(x) sin(2*x)-log10(x),);
x=round(1e6*x)/1e6;
x=unique(x)

求得五个数值解:

x =

    1.4846    3.4235    ...

解这种多解方程,首先应观察一下零点位于的范围,比如sin(2*x)-log10(x)图形显示,该方程零点位于[1,8]的范围内,那么用代码:
[x fval]=fsolve(@(x) sin(2*x)-log10(x),linspace(1,8,20));
即可获得方程所有解,不需要手动输入“语句中最后的[0.1 1 2 3 4 5 6 7 8 8.5]”。
linspace(1,8,20)中20这个数字应大于零点的个数。
比如求 sin(10*x)-log10(x),观察图形有31个解,这个时候就把该数值设得大一些,同时xx=linspace(0,10,500)中取点个数也设置为500这样的大数,因为解多了,这样做可以防止漏解:
clear all;clc
[x fval]=fsolve(@(x) sin(10*x)-log10(x),linspace(0.2,9.7,100));
x=round(1e6*x)/1e6;
x_answer=unique(x)
figure(1)
xx=linspace(0,10,500);
yy=sin(10*xx)-log10(xx);
plot(xx,yy,'b',[0 10],[0 0],'r')

可求得31个解,如下:
x_answer =

  Columns 1 through 12

    0.3601    0.6064    0.9449    1.2669    1.5516    1.9135    2.1649    2.5552    2.7814    3.1945    3.3997    3.8322

  Columns 13 through 24

    4.0192    4.4690    4.6394    5.1052    5.2602    5.7410    5.8812    6.3767    6.5024    7.0123    7.1236    7.6482

  Columns 25 through 31

    7.7445    8.2845    8.3649    8.9219    8.9842    9.5621    9.6007
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2015-09-24 12:48:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

八角寨

银虫 (著名写手)

引用回帖:
4楼: Originally posted by 月只蓝 at 2015-09-24 12:48:38
解这种多解方程,首先应观察一下零点位于的范围,比如sin(2*x)-log10(x)图形显示,该方程零点位于的范围内,那么用代码:
=fsolve(@(x) sin(2*x)-log10(x),linspace(1,8,20));
即可获得方程所有解,不需要手动输 ...

帮主知识渊博,感谢版主的耐心帮忙。
5楼2015-09-24 16:15:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
4楼: Originally posted by 月只蓝 at 2015-09-24 12:48:38
解这种多解方程,首先应观察一下零点位于的范围,比如sin(2*x)-log10(x)图形显示,该方程零点位于的范围内,那么用代码:
=fsolve(@(x) sin(2*x)-log10(x),linspace(1,8,20));
即可获得方程所有解,不需要手动输 ...

该段代码运行后,产生的图如附图1所示。
如何用matlab求方程 sin(2*x)=log10(x) 的解,谢谢。
附图1.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2016-01-26 09:03:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

you叫宝哥

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by 月只蓝 at 2015-09-24 12:48:38
解这种多解方程,首先应观察一下零点位于的范围,比如sin(2*x)-log10(x)图形显示,该方程零点位于的范围内,那么用代码:
=fsolve(@(x) sin(2*x)-log10(x),linspace(1,8,20));
即可获得方程所有解,不需要手动输 ...

感谢指导!
7楼2018-08-28 13:48:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 八角寨 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 286求调剂 +13 Faune 2026-04-06 13/650 2026-04-06 22:35 by chenzhimin
[考研] 机械专硕274求调剂,不挑专业学校 +6 泛泛2333 2026-04-05 8/400 2026-04-06 18:06 by 泛泛2333
[考研] 336材料与化工085600求调剂 +9 水星记infp 2026-04-05 12/600 2026-04-06 11:46 by 水星记infp
[考研] 281求调剂 +8 椰子蘑菇 2026-04-06 8/400 2026-04-06 10:38 by 蓝云思雨
[考研] 一志愿C9的化学工程(085602) 340分,感觉校内调剂无望,求调剂 +12 万事宜臻 2026-04-04 12/600 2026-04-06 07:46 by 无际的草原
[考研] 求调剂 +11 熊二想上岸 2026-04-04 11/550 2026-04-05 22:21 by 醉翁wl
[考研] 083200 333求调剂 +3 十二!! 2026-04-04 3/150 2026-04-05 08:28 by barlinike
[考研] 311分 22408 求调剂 +3 bing_bot 2026-04-03 3/150 2026-04-05 00:43 by chongya
[考研] 专硕310求调剂 +5 捞捞我…. 2026-04-04 6/300 2026-04-04 23:33 by barlinike
[考研] 286求调剂 +3 草木不言 2026-04-04 3/150 2026-04-04 22:40 by lbsjt
[考研] 0710生物学336分求调剂 +6 kiyy 2026-04-01 8/400 2026-04-04 10:10 by kiyy
[考研] 286求调剂 +8 lim0922 2026-04-02 8/400 2026-04-03 20:19 by rzh123456
[考研] 生物学硕341求调剂 +4 你笑起来像云朵 2026-04-03 4/200 2026-04-03 10:32 by macy2011
[考研] 专硕 351 086100 也是考的材科基 本科也是材料 +8 202451007219 2026-04-02 8/400 2026-04-03 09:50 by 蓝云思雨
[考研] 考研调剂 +3 李木子0120 2026-04-02 5/250 2026-04-02 21:45 by dongzh2009
[考研] 环境工程297分求调剂一志愿杭高院 +15 GENJIOW 2026-03-31 16/800 2026-04-02 17:56 by cyh—315
[考研] 学硕化学工程与技术,一志愿中国海洋大学320+求调剂 +8 披星河 2026-04-02 8/400 2026-04-02 14:12 by oooqiao
[考研] 0710生物学求调剂 +9 manman511 2026-04-01 9/450 2026-04-02 10:00 by zxl830724
[考研] 江苏科技大学招材料研究生 +4 Su032713. 2026-04-01 5/250 2026-04-01 22:03 by cccchenso
[考研] 267求调剂 +13 uiybh 2026-03-31 13/650 2026-04-01 10:25 by 探123
信息提示
请填处理意见