MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]这个方程怎么解啊? (https://www.labfans.com/bbs/showthread.php?t=5888)

happyliuye 2008-12-17 15:19

[求助]这个方程怎么解啊?
 
[p,c]=solve('168/334=acos((c^2+272.5674^2-(p+63.56)^2)/(2*c*272.5674))-acos((c^2+272.5674^2-(p-63.56)^2)/(2*c*272.5674))',...
'0.2461=acos((-c^2+272.5674^2+(p+63.56)^2)/(2*(p+63.56)*272.5674))-acos((-c^2+272.5674^2+(p-63.56)^2)/(2*(p-63.56)*272.5674))')

Warning: Explicit solution could not be found.
> In solve at 140

p =

[ empty sym ]


c =
[]
上面是matlab计算的,看起来很复杂,编辑水平有限,大家耐心点帮忙看看....
就p,c,是要求解的,其它的都是已知的。
路过的高手帮帮忙..

happyliuye 2008-12-17 15:20

回复: [求助]这个方程怎么解啊?
 
方法是对的嘛?

happyliuye 2008-12-17 21:51

回复: [求助]这个方程怎么解啊?
 
:tongue: :biggrin:

snower1895 2008-12-20 09:22

回复: [求助]这个方程怎么解啊?
 
首先说 我也是新手 我的做法也很业余
在这个方程上,用solve是最不明智的选择,因为solve解决线性方程还可以,解决非线性方程就差远了,这也是新手容易犯的错误 碰到方程就solve,解非线性方程还是fsolve比较好。
下面是我的结果,同样期待高手批阅。

m文件
function y=fun(x)
y=[168/334-acos((x(1)^2+272.5674^2-(x(2)+63.56)^2)/(2*x(1)*272.5674))-acos((x(1)^2+272.5674^2-(x(2)-63.56)^2)/(2*x(1)*272.5674)),0.2461-acos((-x(1)^2+272.5674^2+(x(2)+63.56)^2)/(2*(x(2)+63.56)*272.5674))-acos((-x(1)^2+272.5674^2+(x(2)-63.56)^2)/(2*(x(2)-63.56)*272.5674))]


command 窗口
x0=[1.0 1.0]
fsolve(@fun,x0)

ans =

48.6881 + 8.1128i 0.9401 - 0.7512i





中间过程没有复制粘贴
祝你早日成为高手

happyliuye 2008-12-20 15:55

回复: [求助]这个方程怎么解啊?
 
你的方法很对哦
可是x[0]取1.0 1.0 不是很对
值大概在260 90
还是很谢谢你的方法,
不知这种非线性方程取近似值时有什么规律没?

x0=[265 90]
ans =

1.0e+002 *

2.4694 + 0.0018i 0.8814 - 0.0018i

未注册 2008-12-20 18:50

回复: [求助]这个方程怎么解啊?
 
这个值只是个搜索的起点吧
没有什么限制
只是fsolve函数的参数里面有限制
这个我不太明白

snower1895 2008-12-21 09:56

回复: [求助]这个方程怎么解啊?
 
我知道了
fsolve这个函数一次只能解出一个0点

happyliuye 2008-12-21 11:52

回复: [求助]这个方程怎么解啊?
 
恩,楼上的有道理。
但是取值不同,结果差别很大哦......
不知各位大侠遇到这种事没?

snower1895 2008-12-22 18:28

回复: [求助]这个方程怎么解啊?
 
fsolve这个函数每次只能求解一个零点
他从你给定的起点开始搜索
遇到解就停止
所以再用fsolve解题时
应该先用plot画出函数图形
然后从零点的附近选择搜索起点

wangy_86 2009-07-13 21:27

回复: [求助]这个方程怎么解啊?
 
[QUOTE=snower1895;20680]fsolve这个函数每次只能求解一个零点
他从你给定的起点开始搜索
遇到解就停止
所以再用fsolve解题时
应该先用plot画出函数图形
然后从零点的附近选择搜索起点[/QUOTE]

如果是方程组是3*3的无法画图,用mathematica又没法求出解析解出来怎么办呢?


所有时间均为北京时间。现在的时间是 03:13

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.