24小时热门版块排行榜    

查看: 974  |  回复: 8

kweewu

铜虫 (小有名气)

[求助] 求助大神解一个非线性方程组已有1人参与

方程组形式如下:

x^2+y^2-2xycosω1=a^2
y^2+z^2-2yzcosω2=b^2
z^2+x^2-2zxcosω3=c^2

除去x,y,z外,其他均为常数
cosω1=0.37461
cosω2=0.24192
cosω3=0.17365

a=7.2
b=14.2
c=18.1

小弟菜鸟一个,使用excel规划求解得出x=9.759132,y=3.746134,z=15.8171,
目标函数选择为f=(x^2+y^2-2xycosω1-a^2)^2+(y^2+z^2-2yzcosω2-b^2)^2+(z^2+x^2-2zxcosω3=c^2)^2
最终的函数值f应该为0,但当取以上解时f=3333.691;
所以应该还有更精确的解。
因为没用过MATLAB,所以希望求得能解该方程组的MATLAB代码。
谢谢!

求助大神解一个非线性方程组
eq.png
回复此楼
PEMFC
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
不存在满足f=0的解。

使得f尽量小的解:
   8.063894135668461
   0.049339384803544
-14.560697883414663

或者:
  -8.063894144363893
  -0.049339340193223
  14.560697881727988

MATLAB代码:
CODE:
function solve_eq
clear all;clc
format long
global a b c cos1 cos2 cos3

cos1=0.37461;
cos2=0.24192;
cos3=0.17365;

a=7.2;
b=14.2;
c=18.1;


x0=[-1 0 0];

options=optimset('TolFun',1e-9);
[x fval]=fsolve(@fun,x0,options);
[x;fval]'
x'


function f=fun(u)

global a b c cos1 cos2 cos3

x=u(1);
y=u(2);
z=u(3);

f(1)=x^2+y^2-2*x*y*cos1-a^2;
f(3)=y^2+z^2-2*y*z*cos2-b^2;
f(2)=z^2+x^2-2*z*x*cos3-c^2;

» 本帖已获得的红花(最新10朵)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-08-11 13:09:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kweewu

铜虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by 月只蓝 at 2015-08-11 13:09:22
不存在满足f=0的解。

使得f尽量小的解:
   8.063894135668461
   0.049339384803544
-14.560697883414663

或者:
  -8.063894144363893
  -0.049339340193223
  14.560697881727988

MATLAB代码:
...

您好!忘了说了,x,y,z均是正数,这样怎样相应的修改一下代码呢?
PEMFC
3楼2015-08-11 15:46:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by kweewu at 2015-08-11 15:46:12
您好!忘了说了,x,y,z均是正数,这样怎样相应的修改一下代码呢?...

如果要求x y z大于0,我想你的计算结果已经是最优了:
x= 9.75912727167921
y= 3.74632253182401
z=15.8171084695522
此时
(x^2+y^2-2*x*y*cos1-a^2)^2+(y^2+z^2-2*y*z*cos2-b^2)^2+(z^2+x^2-2*z*x*cos3-c^2)^2 =3333.69114238958;
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2015-08-11 16:00:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kweewu

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by 月只蓝 at 2015-08-11 16:00:32
如果要求x y z大于0,我想你的计算结果已经是最优了:
x= 9.75912727167921
y= 3.74632253182401
z=15.8171084695522
此时
(x^2+y^2-2*x*y*cos1-a^2)^2+(y^2+z^2-2*y*z*cos2-b^2)^2+(z^2+x^2-2*z*x*cos3-c^2) ...

谢谢!那如此在您的代码上要怎样使x,y,z都是正数呢?
PEMFC
5楼2015-08-11 16:03:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
5楼: Originally posted by kweewu at 2015-08-11 16:03:34
谢谢!那如此在您的代码上要怎样使x,y,z都是正数呢?...

不再用fsolve函数了,改用有约束的非线性最优化函数,求目标函数;(x^2+y^2-2*x*y*cos1-a^2)^2+(y^2+z^2-2*y*z*cos2-b^2)^2+(z^2+x^2-2*z*x*cos3-c^2)^2的最小值,然后附加x y z大于0的约束。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2015-08-11 16:09:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kweewu

铜虫 (小有名气)

引用回帖:
6楼: Originally posted by 月只蓝 at 2015-08-11 16:09:25
不再用fsolve函数了,改用有约束的非线性最优化函数,求目标函数;(x^2+y^2-2*x*y*cos1-a^2)^2+(y^2+z^2-2*y*z*cos2-b^2)^2+(z^2+x^2-2*z*x*cos3-c^2)^2的最小值,然后附加x y z大于0的约束。...

谢谢!我应该如何操作才能采用您的应助?找了一会儿没找到这个选项o(╯□╰)o
PEMFC
7楼2015-08-11 16:26:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kweewu

铜虫 (小有名气)

引用回帖:
6楼: Originally posted by 月只蓝 at 2015-08-11 16:09:25
不再用fsolve函数了,改用有约束的非线性最优化函数,求目标函数;(x^2+y^2-2*x*y*cos1-a^2)^2+(y^2+z^2-2*y*z*cos2-b^2)^2+(z^2+x^2-2*z*x*cos3-c^2)^2的最小值,然后附加x y z大于0的约束。...

改用有约束的非线性最优化函数,附加x y z大于0的约束,这个代码该怎么写呢?
PEMFC
8楼2015-08-11 16:30:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
kweewu: 金币+30, ★★★★★最佳答案, 非常感谢您的耐心帮助! 2015-08-11 17:07:24
引用回帖:
8楼: Originally posted by kweewu at 2015-08-11 16:30:11
改用有约束的非线性最优化函数,附加x y z大于0的约束,这个代码该怎么写呢?...

CODE:
function youhua
clear all;clc
format long


A=[-1 0 0
    0 -1 0
    0 0 -1];
b=[0 0 0];
x0=[1 1 1];

[x fval]=fmincon(@fun,x0,A,b)





function f=fun(u)
cos1=0.37461;
cos2=0.24192;
cos3=0.17365;

a=7.2;
b=14.2;
c=18.1;



x=u(1);
y=u(2);
z=u(3);
f=(x^2+y^2-2*x*y*cos1-a^2)^2+(y^2+z^2-2*y*z*cos2-b^2)^2+(z^2+x^2-2*z*x*cos3-c^2)^2;

计算结果:
x y z分别=

   9.759125101118036   3.746323040238880  15.817108773681586


目标函数值fval =

    3.333691142391446e+003

上述代码须完整复制进一个新建的m文件中,运行即可,不能在主程序窗口运行。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
9楼2015-08-11 16:47:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kweewu 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 博士毕业高校和就业的相关问题 +4 SCITOPPP 2024-06-14 7/350 2024-06-16 20:28 by SCITOPPP
[基金申请] F口信息学部拿面上,大概需要什么样的成果 +3 _奋黎_ 2024-06-16 4/200 2024-06-16 20:21 by _奋黎_
[考博] 34岁读博士晚吗 +27 emitdne 2024-06-13 27/1350 2024-06-16 18:57 by yugege2009
[硕博家园] 硕博巨婴,也许才刚刚开始 +30 SNaiL1995 2024-06-12 74/3700 2024-06-16 17:08 by SNaiL1995
[基金申请] 希望今年自己国自然面上项目和老婆青年项目能中! +7 恐龙爸爸 2024-06-14 7/350 2024-06-16 14:48 by redfish105
[基金申请] 博后基金,博管会会提前知道消息吗? +4 yuyiang 2024-06-13 4/200 2024-06-16 11:40 by yangyuzhong4
[博后之家] 山东大学(青岛)“天然药物生物智造”课题组 招聘“博士后”(年薪20.4-55.6万元) +5 第二种态度 2024-06-11 8/400 2024-06-16 10:14 by 午睡未进行
[基金申请] 关于博后基金的bug问题 +6 lxr1991 2024-06-14 9/450 2024-06-15 21:17 by since—2010
[基金申请] BO4的YQ答辩通知发布了吗? +6 博学笃行 2024-06-11 6/300 2024-06-15 16:04 by 悲催科研狗
[论文投稿] 求机械类四区sci推荐 5+3 迷茫小旷 2024-06-14 4/200 2024-06-15 11:25 by bobvan
[食品] 食品博士导师 +6 小李醒yy 2024-06-11 9/450 2024-06-14 23:37 by 小李醒yy
[论文投稿] 审稿问题:为什么荧光激发波长和紫外吸收波长差的大? 10+4 sdawege 2024-06-14 8/400 2024-06-14 22:39 by 东北读书人
[考研] 物理化学一对一辅导 +3 林大diao 2024-06-12 5/250 2024-06-14 20:57 by 林大diao
[基金申请] E12面上申请 +4 汉风之遗 2024-06-13 4/200 2024-06-14 15:28 by 天外飞去来
[有机交流] ππ堆积会发生在有机溶剂中吗 5+3 zibuyu0420 2024-06-13 4/200 2024-06-14 14:17 by 小肉干
[基金申请] 国自然基金公布的时候基金号有吗 +8 潇洒怡惜 2024-06-13 11/550 2024-06-14 11:24 by JRfei
[基金申请] 化学会年会改成一年开一次了? +5 babu2015 2024-06-12 13/650 2024-06-14 10:46 by babu2015
[基金申请] 博士后面上项目状态还是专家评审吗 10+9 Thatcheremu 2024-06-13 55/2750 2024-06-13 21:23 by 乌合麒麟
[硕博家园] 科研求助 +5 杲www 2024-06-12 6/300 2024-06-13 16:16 by 姓李名明
[论文投稿] water research状态咨询 5+3 Flyyawa 2024-06-10 6/300 2024-06-11 09:45 by bobvan
信息提示
请填处理意见