[已答复] MATLAB中复数变为三角函数

[复制链接]
wzb_colaboy 发表于 2013-11-13 21:12:36
matlab求解D2x+w^2*x=0dsolve('D2x=(-w^2*x)','t')
ans =C11*exp(t*w*i) + C12/exp(t*w*i)有没有人能用matlab中的函数把结果变成实数形式我知道实数形式是:x=A1*cos(wt)+A2*sin(wt)但是我不会弄

6 条回复


winner245 发表于 2013-11-13 21:16:30
>> x = dsolve('D2x=(-w^2*x)','t')
>> rewrite(x,'cos')

wzb_colaboy 发表于 2013-11-14 16:17:30
winner245 发表于 2013-11-13 21:16
>> x = dsolve('D2x=(-w^2*x)','t')
>> rewrite(x,'cos')

非常感谢你,但是运行的结果是
ans=
C2*(cos(t*w) + sin(t*w)*i) + C3*(cos(t*w) - sin(t*w)*i)
而不是:
x=A1*cos(wt)+A2*sin(wt)

winner245 发表于 2013-11-14 21:41:20
你这个表达式本来就未必能把虚数部分彻底消除,即使你手工计算出来,也是:

(C11+C12)*cos(t*w) +i*(C11-C12)*sin(t*w)

而你的 C11、C12 都是任意常数,所以,无法得到你要的纯实数结果

kaaaf123 发表于 2013-11-14 21:56:02
如果版本不够新的话试试看:
syms t w real
dsolve('D2x=(-w^2*x)','t')

SFLin 发表于 2021-10-28 19:58:24
kaaaf123 发表于 2013-11-14 21:56
如果版本不够新的话试试看:
syms t w real
dsolve('D2x=(-w^2*x)','t')

太感谢了,强呀

int_add 发表于 4 天前
kaaaf123 发表于 2013-11-14 21:56
如果版本不够新的话试试看:
syms t w real
dsolve('D2x=(-w^2*x)','t')

感谢,果然能成
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表