早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求助用matlab解m值(B2/B1+k)*(F1/F2)^m-k*(B3/B2)*(F1/F3)^m-1=0k=(1-B2/B1)/(1-B3/B2)附10组(F,B)的值F\x05\x05B0.0001\x05\x050.00090.0002\x05\x050.00180.0004\x05\x050.00360.0007\x05\x050.00530.001\x05\x050.0070.0042\x05\x050.01580.017\x05\x050.

题目详情
求助用matlab解m值 (B2/B1+k)*(F1/F2)^m-k*(B3/B2)*(F1/F3)^m-1=0 k=(1-B2/B1)/(1-B3/B2)
附10组(F,B)的值
F\x05\x05B
0.0001\x05\x050.0009
0.0002\x05\x050.0018
0.0004\x05\x050.0036
0.0007\x05\x050.0053
0.001\x05\x050.007
0.0042\x05\x050.0158
0.017\x05\x050.023
0.035\x05\x050.025
0.054\x05\x050.026
0.123\x05\x050.027
手头上有matlab 7.0
因为可以推出方程有两个解,其中一个必然是x1=0(这个需要舍去)
然后在
y=(B2/B1+(1-B2/B1)/(1-B3/B2))*(F1/F2)^m-(1-B2/B1)/(1-B3/B2)*(B3/B2)*(F1/F3)^m-1)
代入上面数据的前3组,刚好可以手解出一个值是1
所以试着用fzero去求1附近的解
但得出来的结果波动太大了
不知道是什么原因导致的误差
做法如下
function y=fun(x)
y=1.92592592592593*(0.22777777777778)^x-0.92592592592593*(0.22777777777778/0.06481481481481)^x-1
x0=fzero('funx',1)
为什么不能这样去求呢
有没更好的方法可以得到漂亮的数据呢
m的理论值应该是在1左右随着数据取值增大而减小的
最理想是求出平均值0.9几
▼优质解答
答案和解析
function linearclear allclose allglobal t intensity tra=load('s1.dat')t=a(:,2);intensity=a(:,1);tr=0:0.001:0.16;options = optimset('TolFun',1e-8,'TolX',1e-8);x = lsqnonlin(@nlinear,[0.1 300 1],[],[],o...
看了求助用matlab解m值(B2...的网友还看了以下: