24小时热门版块排行榜    

查看: 1880  |  回复: 8

sysuyang

捐助贵宾 (初入文坛)

[求助] Matlab求解二元二次方程 已有2人参与

我用Matlab 的solve函数求解下面的二元方程,但无解,请问该怎么解?本人Matlab菜鸟,多多指教!谢谢

>> syms A R x y
>> [A,R]=solve('x=R*(1+(1-A)^2*(1-2*R))/(1-(1-A)^2*R^2)','y=(1-R)^2*(1-A)/(1-(1-A)^2*R^2)','A','R')

Warning: Explicit solution could not be found
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
sysuyang(dbb627代发): 金币+10, 代发奖励金币 2017-03-24 08:40:41
引用回帖:
5楼: Originally posted by sysuyang at 2017-01-22 11:32:22
不好意思我再具体一点,我把一组参数值赋予x和y后,得到了以下解:

>> =solve('0.074635=R*(1+(1-A)^2*(1-2*R))/(1-(1-A)^2*R^2)','0.862301=(1-R)^2*(1-A)/(1-(1-A)^2*R^2)','A','R')

A =

1166 ...

1. 怎么让Matlab直接给出最终数值而不是表达式?
答: [A,R]=solve('0.074635=R*(1+(1-A)^2*(1-2*R))/(1-(1-A)^2*R^2)','0.862301=(1-R)^2*(1-A)/(1-(1-A)^2*R^2)','A','R');
之后加一句:
vpa(A)

2. 怎么给出一系列的x,y值,让Matlab自动算出一系列的A,R数值解?
答:用for循环。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2017-01-22 11:37:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
不是无解。是无法获得用一堆符号表示的数学解析解。
如果除待求的未知数以外的参数均已知,是可以求得数值解的。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2017-01-22 09:38:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sysuyang

捐助贵宾 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2017-01-22 09:38:57
不是无解。是无法获得用一堆符号表示的数学解析解。
如果除待求的未知数以外的参数均已知,是可以求得数值解的。

thank you! x和y是已知的,但有很多组,怎么给它一个数组,然后一一解出来?谢了
3楼2017-01-22 11:03:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
3楼: Originally posted by sysuyang at 2017-01-22 11:03:47
thank you! x和y是已知的,但有很多组,怎么给它一个数组,然后一一解出来?谢了...

可以实现。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2017-01-22 11:31:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sysuyang

捐助贵宾 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2017-01-22 09:38:57
不是无解。是无法获得用一堆符号表示的数学解析解。
如果除待求的未知数以外的参数均已知,是可以求得数值解的。

不好意思我再具体一点,我把一组参数值赋予x和y后,得到了以下解:

>> [A,R]=solve('0.074635=R*(1+(1-A)^2*(1-2*R))/(1-(1-A)^2*R^2)','0.862301=(1-R)^2*(1-A)/(1-(1-A)^2*R^2)','A','R')

A =

11667819424563529920521^(1/2)/107787625000 + 114833710539/107787625000
114833710539/107787625000 - 11667819424563529920521^(1/2)/107787625000


R =

11667819424563529920521^(1/2)/240670625000 + 117953914461/240670625000
117953914461/240670625000 - 11667819424563529920521^(1/2)/240670625000

其中,第二个解才是对的,也就是:
A= 117953914461/240670625000 - 11667819424563529920521^(1/2)/240670625000
R= 117953914461/240670625000 - 11667819424563529920521^(1/2)/240670625000

现在问题来了:
1. 怎么让Matlab直接给出最终数值而不是表达式?
2. 怎么给出一系列的x,y值,让Matlab自动算出一系列的A,R数值解?
5楼2017-01-22 11:32:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chendequan

铁虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
月只蓝: 金币+5, 感谢应助 2017-03-24 09:55:45
引用回帖:
5楼: Originally posted by sysuyang at 2017-01-22 11:32:22
不好意思我再具体一点,我把一组参数值赋予x和y后,得到了以下解:

>> =solve('0.074635=R*(1+(1-A)^2*(1-2*R))/(1-(1-A)^2*R^2)','0.862301=(1-R)^2*(1-A)/(1-(1-A)^2*R^2)','A','R')

A =

1166 ...

1、AA=double(A(2))
2、for循环求解后储存到矩阵中可得一系列的A、R数值解

» 本帖已获得的红花(最新10朵)

QQ:516477448,真心帮助解决MATLAB相关问题,提供详细资料,Word文档明确具体问题及要求,尽力而为!
7楼2017-01-22 11:41:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sysuyang

捐助贵宾 (初入文坛)

送红花一朵
引用回帖:
7楼: Originally posted by chendequan at 2017-01-22 11:41:18
1、AA=double(A(2))
2、for循环求解后储存到矩阵中可得一系列的A、R数值解...

多谢了!愿闻其详。
8楼2017-01-22 12:52:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

猎户之星

新虫 (初入文坛)

9楼2017-01-22 17:37:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sysuyang 的主题更新
信息提示
请填处理意见