Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-12-17, 15:19   #1
happyliuye
初级会员
 
注册日期: 2008-12-10
年龄: 37
帖子: 6
声望力: 0
happyliuye 正向着好的方向发展
默认 [求助]这个方程怎么解啊?

[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   #2
happyliuye
初级会员
 
注册日期: 2008-12-10
年龄: 37
帖子: 6
声望力: 0
happyliuye 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

方法是对的嘛?
happyliuye 当前离线   回复时引用此帖
旧 2008-12-17, 21:51   #3
happyliuye
初级会员
 
注册日期: 2008-12-10
年龄: 37
帖子: 6
声望力: 0
happyliuye 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

:tongue: :biggrin:
happyliuye 当前离线   回复时引用此帖
旧 2008-12-20, 09:22   #4
snower1895
初级会员
 
注册日期: 2008-12-20
年龄: 40
帖子: 11
声望力: 17
snower1895 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

首先说 我也是新手 我的做法也很业余
在这个方程上,用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





中间过程没有复制粘贴
祝你早日成为高手
snower1895 当前离线   回复时引用此帖
旧 2008-12-20, 15:55   #5
happyliuye
初级会员
 
注册日期: 2008-12-10
年龄: 37
帖子: 6
声望力: 0
happyliuye 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

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

x0=[265 90]
ans =

1.0e+002 *

2.4694 + 0.0018i 0.8814 - 0.0018i
happyliuye 当前离线   回复时引用此帖
旧 2008-12-20, 18:50   #6
未注册
游客
 
帖子: n/a
默认 回复: [求助]这个方程怎么解啊?

这个值只是个搜索的起点吧
没有什么限制
只是fsolve函数的参数里面有限制
这个我不太明白
  回复时引用此帖
旧 2008-12-21, 09:56   #7
snower1895
初级会员
 
注册日期: 2008-12-20
年龄: 40
帖子: 11
声望力: 17
snower1895 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

我知道了
fsolve这个函数一次只能解出一个0点
snower1895 当前离线   回复时引用此帖
旧 2008-12-21, 11:52   #8
happyliuye
初级会员
 
注册日期: 2008-12-10
年龄: 37
帖子: 6
声望力: 0
happyliuye 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

恩,楼上的有道理。
但是取值不同,结果差别很大哦......
不知各位大侠遇到这种事没?
happyliuye 当前离线   回复时引用此帖
旧 2008-12-22, 18:28   #9
snower1895
初级会员
 
注册日期: 2008-12-20
年龄: 40
帖子: 11
声望力: 17
snower1895 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

fsolve这个函数每次只能求解一个零点
他从你给定的起点开始搜索
遇到解就停止
所以再用fsolve解题时
应该先用plot画出函数图形
然后从零点的附近选择搜索起点
snower1895 当前离线   回复时引用此帖
旧 2009-07-13, 21:27   #10
wangy_86
初级会员
 
注册日期: 2009-07-13
年龄: 39
帖子: 1
声望力: 0
wangy_86 正向着好的方向发展
默认 回复: [求助]这个方程怎么解啊?

引用:
作者: snower1895 查看帖子
fsolve这个函数每次只能求解一个零点
他从你给定的起点开始搜索
遇到解就停止
所以再用fsolve解题时
应该先用plot画出函数图形
然后从零点的附近选择搜索起点
如果是方程组是3*3的无法画图,用mathematica又没法求出解析解出来怎么办呢?
wangy_86 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]关于求高阶系统的传递函数 longyingdong MATLAB论坛 0 2009-03-26 09:07
[求助]采样simulink数据到工作空间的问题 vsunl MATLAB论坛 0 2009-02-23 21:31
Matlab声音合成和滤波的问题【附代码-自己写的】 xmuer MATLAB论坛 4 2008-12-17 08:58
[求助]电力系统机组启停优化算法程序 woshi523de MATLAB论坛 1 2008-11-18 08:12
Studying the World's Most Complex Dynamic Systems TechnicalArticles MATLAB技术文章 0 2008-08-29 00:40


所有时间均为北京时间。现在的时间是 19:57


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