24小时热门版块排行榜    

查看: 1628  |  回复: 5

ouyangmeme

铁杆木虫 (著名写手)

[求助] 用matlab求解复数方程 已有1人参与

用程序解方程中出错了,想请修改下程序

思路:
要解方程:(mp^2-1)/(mp^2+1)=fwa*(mwa^2-1)/(mwa^2+1)+fic*(mic^2-1)/(mic^2+1)

其中fwa,fic是实数,mwa,mic是复数,实部和虚部都是正的
mp是要求的数
一共有两个解,我只要mp中实部是大于零的那个解。

令mwa,mic,fwa为已知数,根据不同的fic,求出不同的mp,然后做出mp随fic变化的图,
或者另fic,fwa,mwa为已知数,根据不同的mic求出不同的mp,然后做出mp随mic变化的图,

解方程的时候出问题了,
如果把方程中的mwa,mic,fwa,fic的具体值放入方程中,方程只含有一个未知数mp,则是对的,如果像下面这样,先对mwa,mic,fwa,fic赋值,再解方程,就错了。

这个程序改怎么修改?谢谢。

syms mp
fic=0.5;
fwa=0.5;
mwa=1.6+0.2*i;
mic=1.3+0.48*i;
dmp=solve('(mp^2-1)/(mp^2+1)=fwa*(mwa^2-1)/(mwa^2+1)+fic*(mic^2-1)/(mic^2+1)',mp);
m1=double(dmp(1))

报错:
??? Error using ==> mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.

If the input expression contains a symbolic variable, use the VPA function instead.
回复此楼

» 猜你喜欢

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

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

人人乐的呵

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
你把数值型跟符号型参量用在一起了。所以报错啊。要是你把那些已知量直接用数表示就没问题。或者都不赋值全部用符号型变量。
2楼2014-10-04 21:12:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ouyangmeme

铁杆木虫 (著名写手)

引用回帖:
2楼: Originally posted by 人人乐的呵 at 2014-10-04 21:12:11
你把数值型跟符号型参量用在一起了。所以报错啊。要是你把那些已知量直接用数表示就没问题。或者都不赋值全部用符号型变量。

怎么改呢?

[ 发自小木虫客户端 ]
3楼2014-10-06 16:36:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

人人乐的呵

新虫 (初入文坛)

【答案】应助回帖

mwa,mic,fwa,fic先设为符号型,求出解,再带值
4楼2014-10-06 17:14:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ouyangmeme

铁杆木虫 (著名写手)

引用回帖:
4楼: Originally posted by 人人乐的呵 at 2014-10-06 17:14:13
mwa,mic,fwa,fic先设为符号型,求出解,再带值

能把程序写出来吗?谢谢啦

[ 发自小木虫客户端 ]
5楼2014-10-06 21:34:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

人人乐的呵

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by 人人乐的呵 at 2014-10-06 17:14:13
mwa,mic,fwa,fic先设为符号型,求出解,再带值

不好意思,我想简单了,暂时还没想出来。
6楼2014-10-07 17:33:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ouyangmeme 的主题更新
信息提示
请填处理意见