24小时热门版块排行榜    

查看: 682  |  回复: 3

voice2001

铜虫 (著名写手)

[求助] 【求助】matlab2007的solve求解三角函数,计算结果错误 已有1人参与

matlab程序求解三角函数程序如下:

syms x
solve('tan(x-pi/4)-2*x/3=0')
return

matlab2007运行结果如下:
-.13791712807073613045661524523992-1.5323481937969730123523907483188*i

matlab2014运行结果如下:
1.6044193659902407984267577001949

请问
1.这是什么原因?
2.应该如何修改程序使结果一致?
回复此楼

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

程序

» 猜你喜欢

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

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

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
voice2001: 金币+5, ★★★★★最佳答案 2017-03-03 14:06:30
>> x=[-.13791712807073613045661524523992-1.5323481937969730123523907483188*i 1.6044193659902407984267577001949];
>> y=tan(x-pi/4)-2*x/3

y =

  1.0e-016 *

    0.2776         0

两个解都能使得原方程残差几乎为0,何来“计算结果错误”的说法?只是其中一个解是复数而已。

原方程与直线y=0存在多个交点,说明原方程存在多个解。
比如想求得x=1附近的解:
format long
x0=1;
[x fval]=fsolve(@(x) tan(x-pi/4)-2*x/3,x0)

计算结果:
x =

   1.604419385283544


fval =

    2.850402580634182e-008

如果想求得某一个范围之内,所有的实数解,可参考:http://muchong.com/bbs/viewthread.php?tid=9917857
【求助】matlab2007的solve求解三角函数,计算结果错误
untitled.png

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

voice2001

铜虫 (著名写手)

引用回帖:
2楼: Originally posted by 月只蓝 at 2017-03-02 16:21:46
>> x=;
>> y=tan(x-pi/4)-2*x/3

y =

  1.0e-016 *

    0.2776         0

两个解都能使得原方程残差几乎为0,何来“计算结果错误”的说法?只是其中一个解是复数而已。

原方程与直线y=0 ...

【追问】在matlab2007上只得到一个复数解,在matlab2014上只得到一个实数解,而不是同时得到多个解呢?
3楼2017-03-02 16:44:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (职业作家)

Matlab专家

本帖仅楼主可见
4楼2017-03-03 00:43:04
已阅   申请程序强帖   回复此楼   编辑   查看我的主页
相关版块跳转 我要订阅楼主 voice2001 的主题更新
信息提示
请填处理意见