紫电青霜 发表于 2012-4-28 11:03:49

你能确定这两个未知数吗?

未知数分别是x和y,若给定这两个未知数可求得f(x,y)和g(x,y),但是f(x,y)和g(x,y)要满足由F(f(x,y),g(x,y))=0和G(f(x,y),g(x,y))=0组成的非线性方程组(存在唯一解(x,y))。我用matlab里的fsolve函数求解,但是算不出来,各位有什么好的建议么?

Eris 发表于 2012-4-28 20:32:15

有找零函数fzero或找最小值函数fminsearch试一下看

Eris 发表于 2012-4-28 20:42:37

说下finsearch吧,可以写一个主函数,估计想x、y大体的值x0,y0,写成矩阵A=【x0;y0】;M=fminsearch(@myfun,A);其中M为求得的结果,myfun是子函数。
子函数myfun写成如下形式:function f=myfun(C)
                                       x=C(1);y=c(2);
                                       f1=F(f(x,y),g(x,y));f2=G(f(x,y),g(x,y));
                                       f=abs(f1)+abs(f2);

紫电青霜 发表于 2012-4-28 22:15:46

本帖最后由 紫电青霜 于 2012-4-30 21:56 编辑

Eris 发表于 2012-4-28 20:42 static/image/common/back.gif
说下finsearch吧,可以写一个主函数,估计想x、y大体的值x0,y0,写成矩阵A=【x0;y0】;M=fminsearch(@myfun, ...
非常感谢你的回复,finsearch是利用单纯性法来求最小值的,这个函数中把约束转换到目标函数中是不是要包含x和y的相关项?我的疑虑是这里求解f(x,y)和g(x,y)的过程很长,并且最后的结果是数值,这样目标函数就不包含与x和y了,但是与x和y有关,求解f=abs(F(f(x,y),g(x,y)))+abs(G(f(x,y),g(x,y)))的时候finsearch怎么进行计算?我试了一下,可以求得x和y的值,但是误差很大!
有没有这样一种方法,根据估测值x0和y0算出一个目标函数值,然后再有一个估测值算出另一个目标函数值,根据这两个向量确定下一个估测值,直到最后目标函数值满足误差要求,这样可行吗?
页: [1]
查看完整版本: 你能确定这两个未知数吗?