在bbs上看见有人发帖求"求一个最大值为800,周期为20ms的正弦波在前半个周期内跟最大值为1000,周期为0.1ms的三角波的交点",好像很容易,就当炼手,写的时候才发现原来这个东西要用到数值分析方程求根的递归算法: |
// 三角波周期0.1ms,幅值1000 #include "stdafx.h" #define PI 3.14159265358979 double w=2*PI/20;//定义SIN角速度 inline double calc_sin(double t)//计算t时刻sin值 inline double calc_tri(double t)//计算t时刻三角波值 inline double diedai(double t1, double t2)//求解在t时刻附近的 Sin(x)-Tri(x)的近似解 int main(int argc, char* argv[]) getch(); |
| 计算结果: Sin(0.00000000000)= Tri(0.00000000000)= 0.00000000000 Sin(0.09875915496)= Tri(0.09875915496)= 24.81690087054 Sin(0.10127241197)= Tri(0.10127241197)= 25.44823945676 Sin(0.19751948948)= Tri(0.19751948948)= 49.61021032247 Sin(0.20254351972)= Tri(0.20254351972)= 50.87039432071 Sin(0.29628218216)= Tri(0.29628218216)= 74.35635682993 Sin(0.30381202049)= Tri(0.30381202049)= 76.24040975602 Sin(0.39504840957)= Tri(0.39504840957)= 99.03180864501 Sin(0.40507661452)= Tri(0.40507661452)= 101.53229039383 Sin(0.49381934532)= Tri(0.49381934532)= 123.61309366759 Sin(0.50633600650)= Tri(0.50633600650)= 126.72012994850 Sin(0.59259615904)= Tri(0.59259615904)= 148.07681929226 Sin(0.60758890703)= Tri(0.60758890703)= 151.77814069363 Sin(0.69138001539)= Tri(0.69138001539)= 172.39969222437 Sin(0.70883403414)= Tri(0.70883403414)= 176.68068275147 Sin(0.79017207309)= Tri(0.79017207309)= 196.55853825750 Sin(0.81007011466)= Tri(0.81007011466)= 201.40229315040 Sin(0.88897348390)= Tri(0.88897348390)= 220.53032200407 Sin(0.91129588573)= Tri(0.91129588573)= 225.91771460525 Sin(0.98778539167)= Tri(0.98778539167)= 244.29216657106 Sin(1.01251009620)= Tri(1.01251009620)= 250.20192397635 Sin(1.08660893134)= Tri(1.08660893134)= 267.82137317229 Sin(1.11371150802)= Tri(1.11371150802)= 274.23016036408 Sin(1.18544522797)= Tri(1.18544522797)= 291.09544066868 Sin(1.21489889764)= Tri(1.21489889764)= 297.97795279641 Sin(1.28429539575)= Tri(1.28429539575)= 314.09208502761 Sin(1.31607105737)= Tri(1.31607105737)= 321.42114746845 Sin(1.38316053707)= Tri(1.38316053707)= 336.78925869218 Sin(1.41722679672)= Tri(1.41722679672)= 344.53593449390 Sin(1.48204174151)= Tri(1.48204174151)= 359.16516985086 Sin(1.51836494371)= Tri(1.51836494371)= 367.29887412990 Sin(1.58094008492)= Tri(1.58094008492)= 381.19830159793 Sin(1.61948434612)= Tri(1.61948434612)= 389.68692243780 Sin(1.67985662845)= Tri(1.67985662845)= 402.86743097437 Sin(1.72058387282)= Tri(1.72058387282)= 411.67745634449 Sin(1.77879241761)= Tri(1.77879241761)= 424.15164787882 Sin(1.82166241490)= Tri(1.82166241490)= 433.24829806977 Sin(1.87774848131)= Tri(1.87774848131)= 445.03037383784 Sin(1.92271888694)= Tri(1.92271888694)= 454.37773888754 Sin(1.97672583097)= Tri(1.97672583097)= 465.48338062392 Sin(2.02375222811)= Tri(2.02375222811)= 475.04456218989 Sin(2.07572545956)= Tri(2.07572545956)= 485.49080870996 Sin(2.12476140329)= Tri(2.12476140329)= 495.22806582518 Sin(2.17474834072)= Tri(2.17474834072)= 505.03318554771 Sin(2.22574540418)= Tri(2.22574540418)= 514.90808368288 Sin(2.27379542782)= Tri(2.27379542782)= 524.09144365794 Sin(2.32670325032)= Tri(2.32670325032)= 534.06500649992 Sin(2.37286765307)= Tri(2.37286765307)= 542.64693851911 Sin(2.42763399009)= Tri(2.42763399009)= 552.67980186510 Sin(2.47196592669)= Tri(2.47196592669)= 560.68146624125 Sin(2.52853670167)= Tri(2.52853670167)= 570.73403340021 Sin(2.57109113595)= Tri(2.57109113595)= 578.17728101094 Sin(2.62941049395)= Tri(2.62941049395)= 588.20987909821 Sin(2.67024414439)= Tri(2.67024414439)= 595.11711229317 Sin(2.73025450744)= Tri(2.73025450744)= 605.09014880100 Sin(2.76942579091)= Tri(2.76942579091)= 611.48418177503 Sin(2.83106791504)= Tri(2.83106791504)= 621.35830080122 Sin(2.86863688900)= Tri(2.86863688900)= 627.26222003596 Sin(2.93184992288)= Tri(2.93184992288)= 636.99845755438 Sin(2.96787822585)= Tri(2.96787822585)= 642.43548292872 Sin(3.03259977102)= Tri(3.03259977102)= 651.99542048972 Sin(3.06715056162)= Tri(3.06715056162)= 656.98876765473 Sin(3.13331673420)= Tri(3.13331673420)= 666.33468390999 Sin(3.16645462857)= Tri(3.16645462857)= 670.90742851706 Sin(3.23400012240)= Tri(3.23400012240)= 680.00244797245 Sin(3.26579113038)= Tri(3.26579113038)= 684.17739233381 Sin(3.33464928154)= Tri(3.33464928154)= 692.98563074493 Sin(3.36516074133)= Tri(3.36516074133)= 696.78517349433 Sin(3.43526359397)= Tri(3.43526359397)= 705.27187933315 Sin(3.46456410557)= Tri(3.46456410557)= 708.71788863996 Sin(3.53584247900)= Tri(3.53584247900)= 716.84958007662 Sin(3.56400183645)= Tri(3.56400183645)= 719.96327095120 Sin(3.63638539339)= Tri(3.63638539339)= 727.70786781294 Sin(3.66347451580)= Tri(3.66347451580)= 730.50968402201 Sin(3.73689183171)= Tri(3.73689183171)= 737.83663421137 Sin(3.76298269323)= Tri(3.76298269323)= 740.34613530236 Sin(3.83736132676)= Tri(3.83736132676)= 747.22653517861 Sin(3.86252688555)= Tri(3.86252688555)= 749.46228908935 Sin(3.93779344987)= Tri(3.93779344987)= 755.86899734111 Sin(3.96210757605)= Tri(3.96210757605)= 757.84847904704 Sin(4.03818781118)= Tri(4.03818781118)= 763.75622360988 Sin(4.06172521399)= Tri(4.06172521399)= 765.49572023499 Sin(4.13854405989)= Tri(4.13854405989)= 770.88119783502 Sin(4.16138021397)= Tri(4.16138021397)= 772.39572062504 Sin(4.23886188443)= Tri(4.23886188443)= 777.23768855882 Sin(4.26107295540)= Tri(4.26107295540)= 778.54089208602 Sin(4.33914101259)= Tri(4.33914101259)= 782.82025187743 Sin(4.36080378196)= Tri(4.36080378196)= 783.92436081556 Sin(4.43938121167)= Tri(4.43938121167)= 787.62423342237 Sin(4.46057300114)= Tri(4.46057300114)= 788.53997719845 Sin(4.53958228847)= Tri(4.53958228847)= 791.64576947427 Sin(4.56038088375)= Tri(4.56038088375)= 792.38232507059 Sin(4.63974408936)= Tri(4.63974408936)= 794.88178722250 Sin(4.66022766348)= Tri(4.66022766348)= 795.44673036795 Sin(4.73986650021)= Tri(4.73986650021)= 797.33000418497 Sin(4.76011353654)= Tri(4.76011353654)= 797.72926913980 Sin(4.83994944634)= Tri(4.83994944634)= 798.98892680383 Sin(4.86003866125)= Tri(4.86003866125)= 799.22677490562 Sin(4.93999289241)= Tri(4.93999289241)= 799.85784823309 Sin(4.96000315773)= Tri(4.96000315773)= 799.93684533538 Sin(5.03999684227)= Tri(5.03999684227)= 799.93684533538 Sin(5.06000710759)= Tri(5.06000710759)= 799.85784823309 Sin(5.13996133875)= Tri(5.13996133875)= 799.22677490562 Sin(5.16005055366)= Tri(5.16005055366)= 798.98892680383 Sin(5.23988646346)= Tri(5.23988646346)= 797.72926913980 Sin(5.26013349979)= Tri(5.26013349979)= 797.33000418497 Sin(5.33977233652)= Tri(5.33977233652)= 795.44673036795 Sin(5.36025591064)= Tri(5.36025591064)= 794.88178722250 Sin(5.43961911625)= Tri(5.43961911625)= 792.38232507059 Sin(5.46041771153)= Tri(5.46041771153)= 791.64576947427 Sin(5.53942699886)= Tri(5.53942699886)= 788.53997719845 Sin(5.56061878833)= Tri(5.56061878833)= 787.62423342237 Sin(5.63919621804)= Tri(5.63919621804)= 783.92436081556 Sin(5.66085898741)= Tri(5.66085898741)= 782.82025187743 Sin(5.73892704460)= Tri(5.73892704460)= 778.54089208602 Sin(5.76113811557)= Tri(5.76113811557)= 777.23768855882 Sin(5.83861978603)= Tri(5.83861978603)= 772.39572062504 Sin(5.86145594011)= Tri(5.86145594011)= 770.88119783502 Sin(5.93827478601)= Tri(5.93827478601)= 765.49572023499 Sin(5.96181218882)= Tri(5.96181218882)= 763.75622360988 Sin(6.03789242395)= Tri(6.03789242395)= 757.84847904704 Sin(6.06220655013)= Tri(6.06220655013)= 755.86899734111 Sin(6.13747311445)= Tri(6.13747311445)= 749.46228908935 Sin(6.16263867324)= Tri(6.16263867324)= 747.22653517861 Sin(6.23701730677)= Tri(6.23701730677)= 740.34613530236 Sin(6.26310816829)= Tri(6.26310816829)= 737.83663421137 Sin(6.33652548420)= Tri(6.33652548420)= 730.50968402201 Sin(6.36361460661)= Tri(6.36361460661)= 727.70786781294 Sin(6.43599816355)= Tri(6.43599816355)= 719.96327095120 Sin(6.46415752100)= Tri(6.46415752100)= 716.84958007662 Sin(6.53543589443)= Tri(6.53543589443)= 708.71788863996 Sin(6.56473640603)= Tri(6.56473640603)= 705.27187933315 Sin(6.63483925867)= Tri(6.63483925867)= 696.78517349433 Sin(6.66535071846)= Tri(6.66535071846)= 692.98563074493 Sin(6.73420886962)= Tri(6.73420886962)= 684.17739233382 Sin(6.76599987760)= Tri(6.76599987760)= 680.00244797245 Sin(6.83354537143)= Tri(6.83354537143)= 670.90742851706 Sin(6.86668326580)= Tri(6.86668326580)= 666.33468391000 Sin(6.93284943838)= Tri(6.93284943838)= 656.98876765473 Sin(6.96740022898)= Tri(6.96740022898)= 651.99542048972 Sin(7.03212177415)= Tri(7.03212177415)= 642.43548292872 Sin(7.06815007712)= Tri(7.06815007712)= 636.99845755438 Sin(7.13136311100)= Tri(7.13136311100)= 627.26222003596 Sin(7.16893208496)= Tri(7.16893208496)= 621.35830080122 Sin(7.23057420909)= Tri(7.23057420909)= 611.48418177503 Sin(7.26974549256)= Tri(7.26974549256)= 605.09014880100 Sin(7.32975585561)= Tri(7.32975585561)= 595.11711229317 Sin(7.37058950605)= Tri(7.37058950605)= 588.20987909821 Sin(7.42890886405)= Tri(7.42890886405)= 578.17728101094 Sin(7.47146329833)= Tri(7.47146329833)= 570.73403340021 Sin(7.52803407331)= Tri(7.52803407331)= 560.68146624125 Sin(7.57236600991)= Tri(7.57236600991)= 552.67980186510 Sin(7.62713234693)= Tri(7.62713234693)= 542.64693851912 Sin(7.67329674968)= Tri(7.67329674968)= 534.06500649992 Sin(7.72620457218)= Tri(7.72620457218)= 524.09144365794 Sin(7.77425459582)= Tri(7.77425459582)= 514.90808368289 Sin(7.82525165928)= Tri(7.82525165928)= 505.03318554771 Sin(7.87523859671)= Tri(7.87523859671)= 495.22806582518 Sin(7.92427454044)= Tri(7.92427454044)= 485.49080870996 Sin(7.97624777189)= Tri(7.97624777189)= 475.04456218989 Sin(8.02327416903)= Tri(8.02327416903)= 465.48338062392 Sin(8.07728111306)= Tri(8.07728111306)= 454.37773888754 Sin(8.12225151869)= Tri(8.12225151869)= 445.03037383784 Sin(8.17833758510)= Tri(8.17833758510)= 433.24829806977 Sin(8.22120758239)= Tri(8.22120758239)= 424.15164787883 Sin(8.27941612718)= Tri(8.27941612718)= 411.67745634449 Sin(8.32014337155)= Tri(8.32014337155)= 402.86743097437 Sin(8.38051565388)= Tri(8.38051565388)= 389.68692243780 Sin(8.41905991508)= Tri(8.41905991508)= 381.19830159793 Sin(8.48163505629)= Tri(8.48163505629)= 367.29887412990 Sin(8.51795825849)= Tri(8.51795825849)= 359.16516985086 Sin(8.58277320328)= Tri(8.58277320328)= 344.53593449391 Sin(8.61683946293)= Tri(8.61683946293)= 336.78925869218 Sin(8.68392894263)= Tri(8.68392894263)= 321.42114746845 Sin(8.71570460425)= Tri(8.71570460425)= 314.09208502762 Sin(8.78510110236)= Tri(8.78510110236)= 297.97795279641 Sin(8.81455477203)= Tri(8.81455477203)= 291.09544066868 Sin(8.88628849198)= Tri(8.88628849198)= 274.23016036409 Sin(8.91339106866)= Tri(8.91339106866)= 267.82137317229 Sin(8.98748990380)= Tri(8.98748990380)= 250.20192397636 Sin(9.01221460833)= Tri(9.01221460833)= 244.29216657107 Sin(9.08870411427)= Tri(9.08870411427)= 225.91771460525 Sin(9.11102651610)= Tri(9.11102651610)= 220.53032200408 Sin(9.18992988534)= Tri(9.18992988534)= 201.40229315040 Sin(9.20982792691)= Tri(9.20982792691)= 196.55853825750 Sin(9.29116596586)= Tri(9.29116596586)= 176.68068275147 Sin(9.30861998461)= Tri(9.30861998461)= 172.39969222437 Sin(9.39241109297)= Tri(9.39241109297)= 151.77814069363 Sin(9.40740384096)= Tri(9.40740384096)= 148.07681929226 Sin(9.49366399350)= Tri(9.49366399350)= 126.72012994851 Sin(9.50618065468)= Tri(9.50618065468)= 123.61309366759 Sin(9.59492338548)= Tri(9.59492338548)= 101.53229039383 Sin(9.60495159043)= Tri(9.60495159043)= 99.03180864501 Sin(9.69618797951)= Tri(9.69618797951)= 76.24040975603 Sin(9.70371781784)= Tri(9.70371781784)= 74.35635682993 Sin(9.79745648028)= Tri(9.79745648028)= 50.87039432072 Sin(9.80248051052)= Tri(9.80248051052)= 49.61021032247 Sin(9.89872758803)= Tri(9.89872758803)= 25.44823945676 Sin(9.90124084504)= Tri(9.90124084504)= 24.81690087055 Sin(10.00000000000)= Tri(10.00000000000)= 0.00000000000 |