我用fzero命令解一个高次方程,已经得到了解。现在我有8514个方程,这些方程中未知数的系数不同,方程结构一模一样,所以我想写个循环程序,一次解出八千多个方程,相当于循环调用fzero命令。方程中只有x一个未知数,其余的字母都是已知数。
第一部分:将方程写成.M文件FunctionF=myfun(x,price,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,roe1,roe2,roe3,roe4,roe5,roe6,roe7,roe8,roe9,roe10,roe11,roe12)
for m=1:8514
F(m)=price(m)-b0(m)-[(roe1(m)-x)*b1(m)/(1+x)]-[(roe2(m)-x)*b2(m)/(1+x)^2]-[(roe3(m)-x)*b3(m)/(1+x)^3]-[(roe4(m)-x)*b4(m)/(1+x)^4]-[(roe5(m)-x)*b5(m)/(1+x)^5]-[(roe6(m)-x)*b6(m)/(1+x)^6]-[(roe7(m)-x)*b7(m)/(1+x)^7]-[(roe8(m)-x)*b8(m)/(1+x)^8]-[(roe9(m)-x)*b9(m)/(1+x)^9]-[(roe10(m)-x)*b10(m)/(1+x)^10]-[(roe11(m)-x)*b11(m)/(1+x)^11]-[(roe12(m)-x)*b12(m)/x*(1+x)^11];
end
第二部分:调用命令解方程
for k=1:8514
r=fzero(‘myfun’,c(k))
end
运行后显示无法调用myfun,“因为输入参数的数目不足”。
我现在还有一点不确定,就是这种循环用fzero还是用fsolve命令。请各位牛人帮助解答下,急等!