MATLAB如何解这个方程?

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:02:36
方程如下:
1760=w^2*d*(5.8219+15.1884*exp(-0.09*w/0.0352*d)+17.1049*exp(-0.09*w/0.3735*d))

要解出w从1取到500得值时对应的d值,该如何求解??
这个问题我解了好几天了,一直没有进展,请高手指点下,
并给出具体程序,感激不尽!

fwd = @(w)fzero(@(d) w^2*d*(5.8219+15.1884*exp(-0.09*w/0.0352*d)+17.1049*exp(-0.09*w/0.3735*d))-1760,0);
d = zeros(1,500);
for w = 2:500
d(w) = fwd(w);
end
fwd2 = @(w)fzero(@(d) w^2*d*(5.8219+15.1884*exp(-0.09*w/0.0352*d)+17.1049*exp(-0.09*w/0.3735*d))-1760,100);
d(1) = fwd2(1);
说明,fwd和fwd2中最后的0和100分别为求解方程时候的d的初值,由于w = 1时候,用0初值得不到解,因此针对w = 1,设了初值100.
上面的方法利用了嵌套匿名函数,可以解决一大类问题