永发信息网

求高手!用牛顿迭代法解三元三次方程的MATLAB程序!

答案:3  悬赏:80  手机版
解决时间 2021-01-31 00:28
求高手!用牛顿迭代法解下面的三元三次方程,用MATLAB实现,急用,非常感谢!
(1-c)*(1-y)*(1-m)*10.61+y(1-c)*(1-m)*30.56+c*(1-y)*(1-m)*60.67+m*(1-c)*(1-y)*0.95+y*m*(1-c)*28.45+y*c*(1-m) *8.19+c*m*(1-y) *2.51+c* y*m* 76.69-3.21=0
(1-c)*(1-y)*(1-m)*15.21+y*(1-c)*(1-m)*14.58+c*(1-y)*(1-m)*65.2+m*(1-c)*(1-y)*0.96+y*m*(1-c)*14.23+y*c*(1-m) *17.41+c*m*(1-y) *1.62+m*y *c*80.32=0
(1-c)*(1-y)*(1-m)*44.77+y*(1-c)*(1-m)*9.9+c*(1-y)*(1-m)*3.97+m*(1-c)*(1-y)*0.78+y*m*(1-c)*0.8+y*c*(1-m) *3.3+c*m*(1-y) *7.95+ m*c*y*66.79=0
c和m和y分别都是未知数,解的范围都是从0-1。
小妹财富不多,求高手解答。
非常感谢 jimtien的解答,我的方程漏掉了一些数据,在这里我把完整的写出来,此方程中X、Y、Z是已知数据,我的意思是通过这个方程,将一组X、Y、Z数据,转换成c、m、y数据。能给出一个能加载 三维数据的 最终程序么?
(1-c)*(1-y)*(1-m)*10.61+y(1-c)*(1-m)*30.56+c*(1-y)*(1-m)*60.67+m*(1-c)*(1-y)*0.95+y*m*(1-c)*28.45+y*c*(1-m) *8.19+c*m*(1-y) *2.51+c* y*m* 76.69-X=0
(1-c)*(1-y)*(1-m)*15.21+y*(1-c)*(1-m)*14.58+c*(1-y)*(1-m)*65.2+m*(1-c)*(1-y)*0.96+y*m*(1-c)*14.23+y*c*(1-m) *17.41+c*m*(1-y) *1.62+m*y *c*80.32-Y=0
(1-c)*(1-y)*(1-m)*44.77+y*(1-c)*(1-m)*9.9+c*(1-y)*(1-m)*3.97+m*(1-c)*(1-y)*0.78+y*m*(1-c)*0.8+y*c*(1-m) *3.3+c*m*(1-y) *7.95+ m*c*y*66.79-Z=0

补充:X Y Z的参考数据
X Y Z

38.98 38.38 32.29
7.07 9.73 10.97
0.67 0.85 0.79
69.85 68.99 56.01
1.11 1.7 1.6
52.05 54.56 49.08
3.21 2.15 3.76
44.6 46.98 41.77
1.21 1.56 1.46
63.46 63.94 51
3 4.05 4.41
13.01 13.6 11.03
最佳答案



用fsolve可解出来:
先构造函数:
function output=solveproblem(X)
c=X(1);
m=X(2);
y=X(3);
output(1)=(1-c)*(1-y)*(1-m)*10.61+y*(1-c)*(1-m)*30.56+c*(1-y)*(1-m)*60.67+m*(1-c)*(1-y)*0.95+y*m*(1-c)*28.45+y*c*(1-m) *8.19+c*m*(1-y) *2.51+c* y*m* 76.69-3.21
output(2)=(1-c)*(1-y)*(1-m)*15.21+y*(1-c)*(1-m)*14.58+c*(1-y)*(1-m)*65.2+m*(1-c)*(1-y)*0.96+y*m*(1-c)*14.23+y*c*(1-m) *17.41+c*m*(1-y) *1.62+m*y *c*80.32
output(3)=(1-c)*(1-y)*(1-m)*44.77+y*(1-c)*(1-m)*9.9+c*(1-y)*(1-m)*3.97+m*(1-c)*(1-y)*0.78+y*m*(1-c)*0.8+y*c*(1-m) *3.3+c*m*(1-y) *7.95+ m*c*y*66.79

然后求解:
x0=[1 1 1]; %初值
ans1 = ones(20,3);
options=optimset('fsolve');
for k=1:20
[x,fval,exitflag,output]=fsolve(@solveproblem,x0,options);
x0=x;
ans1(k,:)=x;
end

ans1 =
-0.2892 0.9143 0.1893
带入三个方程验证,分别等于0.0012,4.8363e-004,-0.0016
全部回答
你这能不能把它给简化一下?晕
matlab中的fsolve函数就是使用牛顿迭代法进行求解方程的,如果你不是非要学习使用牛顿迭代法的话我建议你直接使用这个函数就行了! 你的这个最好的方法就是将你的方程组定义成一个函数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
七色雨舞蹈艺术培训中心(西河店)地址有知道的
罚款收入记什么科目
怎么才能退出在申通申请注册的个人账号
【不计较得失的经典句子】麻烦英语高手帮我翻
小米5miui8太耗电了什么候优化啊
如果小孩耳朵被打到了,会有哪些症状
一个慢摇 开头是“麦麦麦麦麦麦…”是什么歌
微信如何打国际电话
阳光琴行彩虹少儿电声乐队培训中心地址在什么
FC舞蹈文化传媒(孝感店)地址在哪,我要去那里
当归、沙参、黄芪、川芎一起煲汤行不
按五行生克乘侮规律,木火刑金是指A.相生B.相
13568这几个数字是什么意思
奥古斯都和凯撒谁厉害?
尚舞舞蹈俱乐部(百佳宏业商城步行街)地址在哪
推荐资讯
电动车电机线圈好坏判断
身上长小红痣的原因
我是一名只有初中英语水平的夜大学生,我想考
朝阳轿车轮胎(关城南路)地址在什么地方,想过
6p1电子管代换
慎终追远的意思
王者荣耀里英雄中谁最帅?谁最美?
高三学生易惑冒的原因。我儿子今年高三了,以
6053……2742是哪家银行的卡号开头2
呦这不是呆毛么,每日几句霓虹语开头,日语‘
科学家对地球不同经纬线长度进行测量,统计结
银联卡是不是在任意一个自动取款机都可以取钱
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?