|
楼主 |
发表于 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.
按照这个计算我已经得出结果了,没有问题,但是如果我需要自己把这个解法嵌入到我的应用程序中怎么办啊,能够给指点一下怎么自己编程实现吗? 谢谢啊! |
|