欢迎来到天天文库
浏览记录
ID:62157185
大小:18.50 KB
页数:4页
时间:2021-04-19
《VB牛顿迭代法、二分法和弦截法解一元三次方程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理勿做商业用途VB牛顿迭代法、二分法和弦截法解一元三次方程。OptionExplicitPrivateaAsDouble,bAsDouble,cAsDouble,dAsDouble,xx1AsDouble,xx2AsDouble,eAsDoublePrivateSubForm_Load() a=1 ’a*x^3+b*x^2+c*x+d=0 b=2 c=3 d=—4 xx1=0 ’二分法区间或弦截法区间或牛顿迭代法初值 xx2=1 ’二分法区间或弦截法区间 e=0.00001’精度
2、 EndSubPrivateSubCommand1_Click() ’牛顿迭代法 DimxAsDouble,yAsDouble,dyAsDouble,ydyAsDouble,iAsLong x=xx1 Fori=0To1000 y=f(a,b,c,d,x) dy=f1(a,b,c,x) IfAbs(y)3、tSub ElseIfdy=0Then Print"失败,请另设初值试试” Print ExitSub EndIf ydy=y/dy x=x—ydy Next Print"失败!" Print EndSub个人收集整理,勿做商业用途个人收集整理勿做商业用途PrivateSubCommand2_Click() '二分法 Dimx1AsDouble,x2AsDouble,x0AsDouble,y1AsDoub4、le,y2AsDouble,y0AsDouble,iAsLong x1=xx1 x2=xx2 y1=f(a,b,c,d,x1) y2=f(a,b,c,d,x2) If(y1〉0Andy2>0)Or(y1〈0Andy2<0)Then Print”y1="&y1&”y2="&y2&",二分法里y1与y2不能同号,请重新设置x1和x2" ElseIfy1=0Then Print"二分法x="&x1 Print”迭代次数i=”&i ElseIfy2=0Then Prin5、t"二分法x="&x2 Print”迭代次数i=”&i Else Fori=1To1000 x0=(x1+x2)/2 'Debug。Printx0 y0=f(a,b,c,d,x0) Ify0=0Then Print"二分法x="&x0 Print"迭代次数i=”&i Print ExitSub 6、 ElseIfAbs(x1-x2)0Andy0>0)Then x1=x0 Else x2=x0 EndIf Next 7、 Print”失败!" 个人收集整理勿做商业用途 EndIf Print EndSub文档为个人收集整理,来源于网络PrivateSubCommand3_Click() '弦截法 Dimx1AsDouble,x2AsDouble,x0AsDouble,y1AsDouble,y2AsDouble,y0AsDouble,iAsLong x1=xx1 x2=xx2 y1=f(a,b,c,d,x1) y2=f(a,b,c,d,x2) If(y1〉0Andy2〉0)Or(y1<8、0Andy2<0)Then Print"y1=”&y1&”y2=”&y2&",二分
3、tSub ElseIfdy=0Then Print"失败,请另设初值试试” Print ExitSub EndIf ydy=y/dy x=x—ydy Next Print"失败!" Print EndSub个人收集整理,勿做商业用途个人收集整理勿做商业用途PrivateSubCommand2_Click() '二分法 Dimx1AsDouble,x2AsDouble,x0AsDouble,y1AsDoub
4、le,y2AsDouble,y0AsDouble,iAsLong x1=xx1 x2=xx2 y1=f(a,b,c,d,x1) y2=f(a,b,c,d,x2) If(y1〉0Andy2>0)Or(y1〈0Andy2<0)Then Print”y1="&y1&”y2="&y2&",二分法里y1与y2不能同号,请重新设置x1和x2" ElseIfy1=0Then Print"二分法x="&x1 Print”迭代次数i=”&i ElseIfy2=0Then Prin
5、t"二分法x="&x2 Print”迭代次数i=”&i Else Fori=1To1000 x0=(x1+x2)/2 'Debug。Printx0 y0=f(a,b,c,d,x0) Ify0=0Then Print"二分法x="&x0 Print"迭代次数i=”&i Print ExitSub
6、 ElseIfAbs(x1-x2)0Andy0>0)Then x1=x0 Else x2=x0 EndIf Next
7、 Print”失败!" 个人收集整理勿做商业用途 EndIf Print EndSub文档为个人收集整理,来源于网络PrivateSubCommand3_Click() '弦截法 Dimx1AsDouble,x2AsDouble,x0AsDouble,y1AsDouble,y2AsDouble,y0AsDouble,iAsLong x1=xx1 x2=xx2 y1=f(a,b,c,d,x1) y2=f(a,b,c,d,x2) If(y1〉0Andy2〉0)Or(y1<
8、0Andy2<0)Then Print"y1=”&y1&”y2=”&y2&",二分
此文档下载收益归作者所有