用matlab解方城组,如下图,用matlab接出了k值,k =5.552227231845395,但是将k值带入不同的方程中得出的是不同的R值,代入第一个是R= 3.904337445943242e+04,代入第二个得出的是R是二百多,为什么不一样???这是matlab代码:function y=fun1clear allformat longk=fzero('10^x-64233.265306122*x',5)R=0.35*10^(k/1.1)
出错原因是,fzero()的初值x0选择不对。x0应该取0
k=fzero('10^x-64233.265306122*x',0)
但其计算误差也比较大。
建议你使用solve()求解。即
>>syms R k
>>[R,k]=solve(R-0.35*10^(k/1.1),R^2-14306.5*k);
>>R=double(R),k=double(k)
>>0.35*10^(k/1.1) %验算
>>sqrt(14306.5*k) %验算
运行结果
k = 1.55688153855924e-05
R = 0.350011406533846