找回密码
 注册
Simdroid-非首页
查看: 193|回复: 3

如何进行三角函数的和差化积?

[复制链接]
发表于 2008-7-14 14:54:31 | 显示全部楼层 |阅读模式 来自 北京
比如有一个式子:cos(a)-cos(b),想把它变成-2sin(a+b/2)sin(a-b/2)的形式,试了很多函数,如simplify,convert,combine等,都不行,这么简单的要求都不能满足,郁闷……
发表于 2011-4-11 11:47:35 | 显示全部楼层 来自 河南焦作
Simdroid开发平台
从网上翻出来的方法:
> q1 := cos(a)-cos(b);
> q2 := {u = (a+b)*(1/2), v = (a-b)*(1/2)};
> q3 := solve(q2, {a, b});
> q4 := eval(q1, q3);
> q4 := expand(q4);
> eval(q4, q2);
或:
trigsubs(cos(a)-cos(b))

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-4-16 21:39:55 | 显示全部楼层 来自 湖南长沙
trigsubs这个命令没有用过,是不是有点类似algsubs,有没有一个表达式整体替换的意思?
回复 不支持

使用道具 举报

发表于 2011-4-21 15:45:09 | 显示全部楼层 来自 河南郑州
本帖最后由 WangGaoteng 于 2011-4-24 13:19 编辑

3# ton121212
我只是把别人的东西整理了一下:trigsubs这个命令比较弱,如trigsubs(sin(x y)),trigsubs(sin(x+y))等等都能得出结果。但是trigsubs(sin(-x y)), trigsubs(sin(-x-y)), trigsubs(-cos(x)-cos(y))等等会返回两类错误:Error, (in trigsubs) expecting a product of two functions but got -sin(x+y),或Error, (in trigsubs) expecting a sum or difference of two functions but got -cos(x)-cos(y)。

好像trigsubs在处理像 sin(x-y),cos(x y)这种类型的三角函数时,只要x前没有负常数,就可以返回结果。但是一旦x前有负系数,如-1,-4,-8等就会出错。
另一类情况是像sin(x)+cos(y),sin(x)-sin(y)等类型,当+号两端都是sin或cos,并且前面一个(即sin(x)+sin(y)中的sin(x))前没有非正数1的常数时,trigsubs才会得出结果,如trigsubs(sin(x)-sin(y)),trigsubs(cos(x)+cos(y))。一旦将x加个负号,或在第一个函数(如sin(x)+sin(y)中的sin(x))前加个常数,就会出错。另外,当加号两端不是同类型的函数时,即sin(x)+cos(y),cos(x)-sin(y)时,也会出错。

说的比较乱,抱歉。很多东西我搞不清楚,就把使用经验记了下来。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-19 08:00 , Processed in 0.040642 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表