声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3689|回复: 16

[计算数学] 求高手指点 求方程组的解

[复制链接]
发表于 2007-6-17 11:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
x(1)*cos(x(2))+x(3)*cos(x(4))+1=0
x(1)*sin(x(2))+x(3)*sin(x(4))-6.92820323=0
(x(1)*28+0.816179*x(1)*x(1)+0.283616)*cos(x(2))+(x(3)*76-0.816179*x(3)*x(3)-0.283616)*cos(x(4))+148=0;
(x(1)*28+0.816179*x(1)*x(1)+0.283616)*sin(x(2))+(x(3)*76-0.816179*x(3)*x(3)-0.283616)*sin(x(4))-401.8357874=0;

其中x(1),x(2),x(3),x(4)为所有求解的未知数,最好能够给出迭代过程,这个解的过程需要嵌入到自己的程序中,不过能用工具先求解出也可以,解在(3,1.047,5,2.09439)附近!多谢!
回复
分享到:

使用道具 举报

发表于 2007-6-17 11:38 | 显示全部楼层
fsolve  试试
发表于 2007-6-17 15:13 | 显示全部楼层
楼主要数值解法?
无水给你的符号求解应该是可以的,试试看
符号求解我觉得更普遍,更适用
发表于 2007-6-17 17:13 | 显示全部楼层

回复 #3 咕噜噜 的帖子

哈,我说的就是matlab里面的一个数值解法,你可以help fsolve
发表于 2007-6-17 20:02 | 显示全部楼层

回复 #4 无水1324 的帖子

无水过分哈,没理解我的意思
我是说楼主要类似于二分法的数值解法,不是你的那个命令:loveliness:
 楼主| 发表于 2007-6-18 09:58 | 显示全部楼层
那个fsolve我试过了,不知道怎么回事,得不出结果,并且这个东西我要在实际的项目中解,需要编程实现,不知道用什么样的解法,还要麻烦两位指点:handshake
发表于 2007-6-18 12:32 | 显示全部楼层
你把程序发上来我看看可以不?
不行你就用二分法迭代
 楼主| 发表于 2007-6-18 13:13 | 显示全部楼层
matlab的计算过程如下:
function F=myfun(x)
F=[x(1)*cos(x(2))+x(3)*cos(x(4))+1;
   x(1)*sin(x(2))+x(3)*sin(x(4))-6.92820323;
   (x(1)*28+0.816179*x(1)*x(1)+0.283616)*cos(x(2))+(x(3)*76-0.816179*x(3)*x(3)-0.283616)*cos(x(4))+148;
   (x(1)*28+0.816179*x(1)*x(1)+0.283616)*sin(x(2))+(x(3)*76-0.816179*x(3)*x(3)-0.283616)*sin(x(4))-401.8357874;
   ];

x0 = [3; 1.047; 5;2.094];           % Make a starting guess at the solution
options=optimset('Display','iter','NonlEqnAlgorithm','gn');   % Option to display output
[x,fval] = fsolve(@myfun,x0,options);  % Call optimizer

其中x0 = [3; 1.047; 5;2.094];  的意思是(3,60°,5,120°)

运行完给了一个这个结果                                                     Directional
Iteration  Func-count    Residual     Step-size      derivative
     0           5         330.917
     1          13         4.17499        0.953           -2.71
     2          21     0.000189858            1       1.26e-005
     3          29    1.96699e-012            1      -8.99e-013
Optimization terminated: magnitude of search direction less than TolX.

没有结果出来
search direction 指得什么意思?

如果二分法,我做过方程的 没有做过方程组的 能不能说的详细点
发表于 2007-6-18 14:20 | 显示全部楼层
:@)
我这里显示
Optimization terminated successfully:
Search direction less than tolX
这是正常的显示语句,如果不成功才麻烦,才不正确,这句话表示计算结果达到要求,和你得到的显示是一个意思
没结果那是因为你把求解那个命令后面写上了分号
[x,fval] = fsolve(@myfun,x0,options)
去掉分号即可

[ 本帖最后由 咕噜噜 于 2007-6-18 14:35 编辑 ]
 楼主| 发表于 2007-6-18 14:54 | 显示全部楼层

回复 #9 咕噜噜 的帖子

谢谢:handshake   太感激了
但是如果我需要自己编程实现怎么办?那个二分法是怎么个迭代次序?
发表于 2007-6-18 16:42 | 显示全部楼层
不知道你说的实际项目和你现在的情形有什么区别,能说说吗
其实这种方法完全可以的
很多matlab与数值解法的书上都有有关非线性方程组的解法讨论,而且不止一种方法
 楼主| 发表于 2007-6-18 18:24 | 显示全部楼层
matlab的计算过程如下:
function F=myfun(x)
F=[x(1)*cos(x(2))+x(3)*cos(x(4))+1;
   x(1)*sin(x(2))+x(3)*sin(x(4))-6.92820323;
   (x(1)*28+0.816179*x(1)*x(1)+0.283616)*cos(x(2))+(x(3)*76-0.816179*x(3)*x(3)-0.283616)*cos(x(4))+148;
   (x(1)*28+0.816179*x(1)*x(1)+0.283616)*sin(x(2))+(x(3)*76-0.816179*x(3)*x(3)-0.283616)*sin(x(4))-401.8357874;
   ];

x0 = [3; 1.047; 5;2.094];           % Make a starting guess at the solution
options=optimset('Display','iter','NonlEqnAlgorithm','gn');   % Option to display output
[x,fval] = fsolve(@myfun,x0,options);  % Call optimizer

其中x0 = [3; 1.047; 5;2.094];  的意思是(3,60°,5,120°)

运行完给了一个这个结果                                                     Directional
Iteration  Func-count    Residual     Step-size      derivative
     0           5         330.917
     1          13         4.17499        0.953           -2.71
     2          21     0.000189858            1       1.26e-005
     3          29    1.96699e-012            1      -8.99e-013
Optimization terminated: magnitude of search direction less than TolX.


按照这个计算我已经得出结果了,没有问题,但是如果我需要自己把这个解法嵌入到我的应用程序中怎么办啊,能够给指点一下怎么自己编程实现吗?  谢谢啊!
 楼主| 发表于 2007-6-18 18:27 | 显示全部楼层
我的这个情况,很可能用plc的运算实现,最理想的情况下也是pI  133MHZ的dos操作系统 在工控机上实现,所以现在很是郁闷啊
 楼主| 发表于 2007-6-18 18:28 | 显示全部楼层
噢 谢谢了
我在看看书吧
发表于 2007-6-18 18:37 | 显示全部楼层
用m函数文件调用
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-20 07:53 , Processed in 0.062475 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表