matlab解三元高次方程組。400金幣。
求解下面的三元高次方程組的解。
使用matlab進(jìn)行匯編。
要求:沒有初始值(需要輸入初始值的情況不符合要求。。! 程序運(yùn)行,即要直接得到最優(yōu)結(jié)果!。【哂恤敯粜裕ǚ匠讨邢禂(shù)564080065.628041000,609249680.389719000,649348646.964450000發(fā)生調(diào)整,依然可以正常運(yùn)行 )。!
%%%
需要附上:
1,代碼
2,結(jié)果 X Y Z
3,殘差(驗(yàn)證結(jié)果)
400金幣。
謝謝。
%%需求解方程:
(X^2+Y^2+Z^2)^4 - 564080065.628041000 * (X^2+ Y^2+ 4* Z^2) = 0
( (X+2)^2+Y^2+Z^2)^4 - 609249680.389719000 * ( (X+2)^2+ Y^2+ 4* Z^2) =0
( (X+2)^2+(Y+2)^2+Z^2)^4 - 649348646.964450000 * ( (X+2)^2+ (Y+2)^2+ 4* Z^2) =0
%%殘差驗(yàn)證
% 殘差;
a = (X^2+Y^2+Z^2)^4 - 564080065.628041000 * (X^2+ Y^2+ 4* Z^2)
b = ( (X+2)^2+Y^2+Z^2)^4 - 609249680.389719000 * ( (X+2)^2+ Y^2+ 4* Z^2)
c = ( (X+2)^2+(Y+2)^2+Z^2)^4 - 649348646.964450000 * ( (X+2)^2+ (Y+2)^2+ 4* Z^2)
% 殘差比值
ratioa = 1/(X^2+Y^2+Z^2)^4 * 564080065.628041000 * (X^2+ Y^2+ 4* Z^2)
ratiob = 1/( (X+2)^2+Y^2+Z^2)^4 * 609249680.389719000 * ( (X+2)^2+ Y^2+ 4* Z^2)
ratioc = 1/( (X+2)^2+(Y+2)^2+Z^2)^4 * 649348646.964450000 * ( (X+2)^2+ (Y+2)^2+ 4* Z^2)
返回小木蟲查看更多
京公網(wǎng)安備 11010802022153號
求解結(jié)果在 [-1,-1,0] 是整體最優(yōu)的。
殘差較大可能是方程組本身的問題
大佬 系數(shù)已經(jīng)變了。您仔細(xì)看一下
這個不管怎么變,殘差還是很大,你可以試一下。
除非修改模型
使用fsolve函數(shù),可以得到
X = 5.7508
Y = 4.6978
Z = 35.247
殘值
Xerr= 0.00048828
Yerr=-0.00097656
Zerr=-0.00048828
答案是對的?煞窀缴洗a?是否設(shè)置呢初始值?
謝謝
,
x0=rand(3,1)*1000;
[y,fval,h]=fsolve(@func,x0)
X=y(1)
Y=y(2)
Z=y(3)