精选问答
求 y=X^-0.7725 ;y=-0.125x+1.51 不管用数学计算 数型结合 还是软件,

2019-05-23

求 y=X^-0.7725 ;y=-0.125x+1.51 不管用数学计算 数型结合 还是软件,
优质解答
我这里没有装matlab软件,如果用matlab很easy的.还好我手头有个科学计算器,这就足够了.如果你学过计算方法或者数值分析,所有的方程都可以这样求:将方程化简成x=f(x)的形式,可能化简出来的形式肯定不止一种,其中必有一种能够用迭代法求出,你可以试算,如果是很快发散的就放弃,换下一种形式;如果发现误差在缩小,就是有效方法.当然取初值也很重要的,要先将x的范围找出来,范围越小越好.可能会出现由于初值选择出问题而将本来的有效算法舍弃的情况.
本例中,将方程x^(-0.7725)=-0.125x+1.51化简为x=(-0.125x+1.51)^[1/(-0.7725)]
=(-0.125x+1.51)^(-1.294498382),记f(x)=(-0.125x+1.51)^(-1.294498382).
选初值:观察方程x^(-0.7725)=-0.125x+1.51,左边为减函数(x>0),右边也为减函数.如果画出图像,就知道有两个交点,也就是解有两组.
记g(x)=x^(-0.7725),h(x)=-0.125x+1.51.试算结果:
g(0.5)=1.708227352,h(0.5)=1.4471;
g(1)=1,h(1)=1.385;说明一个根的范围在(0.5,1).
g(10)=0.168849585,h(10)=0.26;
g(11)=0.156864312,h(11)=0.135;说明另一个根范围在(10,11).
下面用迭代法(附加二分法)求解.
x11=0.75,x12=f(x11)=(-0.125*0.75+1.51)^(-1.294498382)=0.637308358,
x13=f[(x11+x12)/2]=f(0.693654179)=0.633228815;
x14=f[(x12+x13)/2]=f(0.635268586)=0.62905017;
x15=f[(x13+x14)/2]=f(0.631139492)=0.628756502;
x16=f[(x14+x15)/2]=f(0.628903336)=0.628597564;
x17=f[(x15+x16)/2]=f(0.628644033)=0.628581483;
x18=f[(x16+x17)/2]=f(0.628589523)=0.628575265;
x19=f[(x18+x17)/2]=f(0.628578374)=0.628574473;
x110=f[(x18+x19)/2]=f(0.628574869)=0.628574224;
x111=f[(x110+x19)/2]=f(0.628574348)=0.628574187;
x112=f[(x110+x111)/2]=f(0.628574205)=0.628574177;
x113=f[(x112+x111)/2]=f(0.628574182)=0.628574175;
x114=f[(x112+x113)/2]=f(0.628574176)=0.628574175;
x115=f[(x114+x113)/2]=f(0.628574175)=0.628574175.
至此,第一个根x=0.628574175已得出.
下面求第二个根.
x21=10.5,x22=f(x21)=(-0.125*10.5+1.51)^(-1.294498382)=8.163703994,已超出范围,说明算法不好.需要改算法.从方程x^(-0.7725)=-0.125x+1.51化简为
x=-8[(x^(-0.7725)-1.51]=12.08-8x^(-0.7725),记F(x)=12.08-8x^(-0.7725),则
x21=10.5,x22=F(x21)=(-0.125*10.5+1.51)^(-1.294498382)=10.77916788;
x23=F[(x21+x22)/2]=F(10.63958394)=10.79237115;
x24=F[(x23+x22)/2]=F(10.78576952)=10.80587369;
x25=F[(x23+x24)/2]=F(10.79912242)=10.80709088;
x26=F[(x25+x24)/2]=F(10.80648228)=10.80776063;
x27=F[(x25+x26)/2]=F(10.80742576)=10.80784643;
x28=F[(x27+x26)/2]=F(10.80780352)=10.80788078;
x29=F[(x27+x28)/2]=F(10.80786361)=10.80788624;
x210=F[(x29+x28)/2]=F(10.80788351)=10.80788805;
x211=F[(x29+x210)/2]=F(10.80788715)=10.80788838;
x212=F[(x211+x210)/2]=F(10.80788822)=10.80788848;
x213=F[(x211+x212)/2]=F(10.80788843)=10.80788850;
x214=F[(x213+x212)/2]=F(10.80788849)=10.80788851;
x215=F[(x213+x214)/2]=F(10.80788851)=10.80788851.
至此,另一个根x=10.80788851已求出.
也即,原方程组的解是:
x1=0.628574175,y1=1.431428228
x2=10.80788851,y2=0.159013936
我这里没有装matlab软件,如果用matlab很easy的.还好我手头有个科学计算器,这就足够了.如果你学过计算方法或者数值分析,所有的方程都可以这样求:将方程化简成x=f(x)的形式,可能化简出来的形式肯定不止一种,其中必有一种能够用迭代法求出,你可以试算,如果是很快发散的就放弃,换下一种形式;如果发现误差在缩小,就是有效方法.当然取初值也很重要的,要先将x的范围找出来,范围越小越好.可能会出现由于初值选择出问题而将本来的有效算法舍弃的情况.
本例中,将方程x^(-0.7725)=-0.125x+1.51化简为x=(-0.125x+1.51)^[1/(-0.7725)]
=(-0.125x+1.51)^(-1.294498382),记f(x)=(-0.125x+1.51)^(-1.294498382).
选初值:观察方程x^(-0.7725)=-0.125x+1.51,左边为减函数(x>0),右边也为减函数.如果画出图像,就知道有两个交点,也就是解有两组.
记g(x)=x^(-0.7725),h(x)=-0.125x+1.51.试算结果:
g(0.5)=1.708227352,h(0.5)=1.4471;
g(1)=1,h(1)=1.385;说明一个根的范围在(0.5,1).
g(10)=0.168849585,h(10)=0.26;
g(11)=0.156864312,h(11)=0.135;说明另一个根范围在(10,11).
下面用迭代法(附加二分法)求解.
x11=0.75,x12=f(x11)=(-0.125*0.75+1.51)^(-1.294498382)=0.637308358,
x13=f[(x11+x12)/2]=f(0.693654179)=0.633228815;
x14=f[(x12+x13)/2]=f(0.635268586)=0.62905017;
x15=f[(x13+x14)/2]=f(0.631139492)=0.628756502;
x16=f[(x14+x15)/2]=f(0.628903336)=0.628597564;
x17=f[(x15+x16)/2]=f(0.628644033)=0.628581483;
x18=f[(x16+x17)/2]=f(0.628589523)=0.628575265;
x19=f[(x18+x17)/2]=f(0.628578374)=0.628574473;
x110=f[(x18+x19)/2]=f(0.628574869)=0.628574224;
x111=f[(x110+x19)/2]=f(0.628574348)=0.628574187;
x112=f[(x110+x111)/2]=f(0.628574205)=0.628574177;
x113=f[(x112+x111)/2]=f(0.628574182)=0.628574175;
x114=f[(x112+x113)/2]=f(0.628574176)=0.628574175;
x115=f[(x114+x113)/2]=f(0.628574175)=0.628574175.
至此,第一个根x=0.628574175已得出.
下面求第二个根.
x21=10.5,x22=f(x21)=(-0.125*10.5+1.51)^(-1.294498382)=8.163703994,已超出范围,说明算法不好.需要改算法.从方程x^(-0.7725)=-0.125x+1.51化简为
x=-8[(x^(-0.7725)-1.51]=12.08-8x^(-0.7725),记F(x)=12.08-8x^(-0.7725),则
x21=10.5,x22=F(x21)=(-0.125*10.5+1.51)^(-1.294498382)=10.77916788;
x23=F[(x21+x22)/2]=F(10.63958394)=10.79237115;
x24=F[(x23+x22)/2]=F(10.78576952)=10.80587369;
x25=F[(x23+x24)/2]=F(10.79912242)=10.80709088;
x26=F[(x25+x24)/2]=F(10.80648228)=10.80776063;
x27=F[(x25+x26)/2]=F(10.80742576)=10.80784643;
x28=F[(x27+x26)/2]=F(10.80780352)=10.80788078;
x29=F[(x27+x28)/2]=F(10.80786361)=10.80788624;
x210=F[(x29+x28)/2]=F(10.80788351)=10.80788805;
x211=F[(x29+x210)/2]=F(10.80788715)=10.80788838;
x212=F[(x211+x210)/2]=F(10.80788822)=10.80788848;
x213=F[(x211+x212)/2]=F(10.80788843)=10.80788850;
x214=F[(x213+x212)/2]=F(10.80788849)=10.80788851;
x215=F[(x213+x214)/2]=F(10.80788851)=10.80788851.
至此,另一个根x=10.80788851已求出.
也即,原方程组的解是:
x1=0.628574175,y1=1.431428228
x2=10.80788851,y2=0.159013936
相关问答