📄 job.cpp
字号:
// 三角波周期0.1ms,幅值1000
// SIN波周期20ms,幅值800
// 求交点坐标
// 使用二分法迭代求解根
// 2006.05.21
#include "stdafx.h"
#include "conio.h"
#include "math.h"
#define PI 3.14159265358979
#define ep 0.00000000000001 //解的误差设置
double w=2*PI/20;//定义SIN角速度
inline double calc_sin(double t)//计算t时刻sin值
{
return 800*sin(w*t);
}
inline double calc_tri(double t)//计算t时刻三角波值
{
double t1=t-(int)(t*10)/10.0;
if(t1<0.05)
return t1*20000;
else
return (0.1-t1)*20000;
}
inline double diedai(double t1, double t2)//求解在t时刻附近的 Sin(x)-Tri(x)的近似解
{
double t;
if(calc_sin(t1)-calc_tri(t1)==0) return calc_sin(t1)-calc_tri(t1);
if(calc_sin(t2)-calc_tri(t2)==0) return calc_sin(t2)-calc_tri(t2);
do{
t=(t1+t2)/2;
double temp1=calc_sin(t)-calc_tri(t);
double temp2=calc_sin(t1)-calc_tri(t1);
double temp=temp1*temp2;
if(temp1==0)
return t;
if(temp<0)
t2=t;
if(temp>0)
t1=t;
}while (t2-t1>ep);
return (t1+t2)/2;
}
int main(int argc, char* argv[])
{
printf("\tSin(X)-sin波\tTri(X)-三角波 \t交点计算\n\n");
double fx;
for(double t=0;t<=10;t+=0.05)
{
//调用迭代函数
fx=diedai(t,t+.05);
printf("Sin(%.11f)= \tTri(%.11f)= \t%.11f\n",fx,fx,calc_sin(fx));
}
getch();
return 0;
}
/*以下为计算结果
Sin(X)-sin? Tri(X)-??? ????
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
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -