求解线性方程组_第1页
求解线性方程组_第2页
求解线性方程组_第3页
求解线性方程组_第4页
求解线性方程组_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

求解线性方程组摘要:自从1946年世界上第一台计算机诞生,计算机在我们的生活作用也越来越重要,它多样化的功能与日趋简便的操作使得利用计算机求解算数问题成为一种趋势。线性方程组求解计算量大过程复杂,所以我们小组通过C++软件编写求解线性方程组程序。该程序功能强大,具有求解线性方程组、三角函数、对数函数、指数函数的功能。而且程序加了新的元素,全数字化控制,使用简单方便。关键词:高斯消元法;C语言;线性方程组;常用函数求解。1绪论1.1研究背景随着人们对计算类软件的需求,求解线性方程组成为常见的应用。线性方程组求解未知数多,方程复杂,人工计算较难实现。为解决这类问题,本小组通过微软公司的VC6.0软件设计一款用C语言求解线性方程组的软件,并能进行常用函数的辅助运算。1.2主要工作一个软件开发需要大量人力、物力支持,还需要合理有序的工作分配,明确一个软件必须要有哪些功能,可以添加哪些功能。线性方程组求解程序有求解功能和辅助功能。因此主要工作是深刻理解高斯消元法原理和初等矩阵,掌握矩阵变换步骤,常用函数的原理;再利用C语言编写一系列代码,解决方程组求解问题。1.3本文结构本文第1部分绪论主要说明了本文的研究背景、主要工作和实现方法。第2部分相关知识介绍。第3部分系统设计,阐述了需求分析、系统模型设计和系统工作流程设计。第4部分系统实现介绍了系统各个功能模块,并描述了系统功能图。第5部分软件的调试和验证,进行截图。第六部分总结和心的体会。2相关知识以下就线形方程求解过程中和其它的相关知识进行间要介绍。2.1高斯消元法原理2.1.1初等矩阵(1)单位矩阵第i,j两行(列)互换得到的方阵为与.。将矩阵B的第i,j两行(列)互换所得矩阵B1,即有PijB=B1单位矩阵第i行(列)乘以常数化得到初等方阵D(k),将矩阵B的第i行(列)乘以k得到矩阵&2,即有B2=Dj(k)B。将单位矩阵的第j行(列)的k倍加到第i行(列)得到初等方阵七.(k),矩阵B的第j行(列)的k倍加到第i行(列)得到矩阵B3,即有B3=Tj(k)B。矩阵B的第i列的k倍加到第j列得到矩阵B3,即有B3=BT..(k)02.1.2高斯消元法 '消元法可用来找出下列方程组的解或其解的限制:2a+b-x=8...X)-3a-b+2c=-11.(.Y)-2a+b+2c=-3...(Z)这个算法的原理是:首先,要将X以下的等式中的a消除,然后再将Y以下的等式中的b消除。这样可使整个方程组变成一个三角形似的格式。之后再将已得出的答案一个个地代入已被简化的等式中的未知数中,就可求出其余的答案了。在刚才的例子中,将3/2X和Y相加,就可以将Y中的a消除了。然后再将X和Z相加,就可以将Z中的a消除。可以这样写:Y+3/2X—Y;Z+X—Z结果就是:2a+b-c=8;1/2b+1/2c=1;2b+c=5现在将-4Y和Z相加,就可将Z中的b消除:Z+(-4Y)—Z其结果是:2a+b一c=81/2b+1/2c=1-c=1这样就完成了整个算法的初步,一个三角形的格式(指:变量的格式而言,上例中的变量各为(3,2,1个)出现了。第二步,就是由尾至头地将已知的答案代入其他等式中的未知数。第一个答案就是:c=-1然后就可以将c代入Y中,立即就可得出第二个答案:b=3之后,将c和b代入X之中,最后一个答案就出来了:a=23软件设计3.1需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,分别是:输入方程组,计算方程组,继续运算/退出。要求以菜单的形式调用各功能函数:程序可读性强,界面新意,输出形式美观。3.2软件流程设计打开线性方程求解系统软件,进入主界面:输入“1”进入线性方程求解系统模块,输入线性方程组相关系求解,按任意键返回主界面;输入“2”进入辅助系统模块,可进行三角函数,ex函数,lgx函数,lnx函数求解,以满足不同 算函数计算的需求;输入“0”退出线性方程求界系统软件。4软件功能实现该程序解决了线性方程组求值问题,大大缩短了计算时间。同时还添加了辅助功能,可以求解三角函数、反三角函数、指数函数、对数函数。4.1方程组参数输入和存储模块本模块主要实现对是方程组参数的输入和存储,二维数组是存储方程组参数非常方便的方法,这样便于用户输入参数和程序的计算。定义一个二维数组a[i][j],确定线性方程组的方程个(fnumber)和未知数(wunumber)的个数;输入方程系数和常数,且存储在二维数组,用此语句{for(i=0;i<number;i++){for(j=0;j<number+1;j++){a[i][j]=0;}}对矩阵置零,这样便于后面对程序的相关操作;{for(i=0;i<fnumber;i++)for(j=0;j<(wnumber+1);j++){scanf("%lf",&a[i][j]);}参数输入语句,这样用户就能输入所求解方程,并且能够实时调整。4.2方程组初等转换模块本模块是对矩阵的初等变换,是利用高斯消元法求解方程组的关键步骤,能够把方程组转换为适合的形式,对程序的求解编写和减小时间复杂度有重要的影响,本模块充分完成了对高斯法的正确编写。基于高斯消元法基本思想,为使能逐一对未知量的求解,第一步在初等矩阵中,定出每列的绝对值最大的一个非0的数,将第一行的值与该行调换,使得第一行拥有这一列的最大值,每次计算都要记录所用计算次数,所以定义变量(cishu)作为计算次数。用下列语句实现:for(cishu=1;cishu<number;cishu++){for(i=j=(cishu-1);i<number;i++){if(a[i][j]<0){A[i][j]=-a[i][j];}else{A[i][j]=a[i][j];}}〃将第i列数值取绝对值放入数组A中hangmax=j;max=A[cishu-1][j];for(i=j+1;i<number;i++){if(A[i][j]>max){hangmax=i;max=A[i][j];}}〃找到第i列的最大值以及所在行if(hangmax!=j){i=cishu-1;for(j=0;j<=number;j++){temp=a[i][j];a[i][j]=a[hangmax][j];a[hangmax][j]=temp;}}〃第i列最大值所在行的值与第一行的值互换第二步将第一行的数字除以该数,使得该行的第一个数成为1:{for(j=i=(cishu-1);j<=number;j++){a[i][j]=a[i][j]/temp;},在第i行中,从第i列到第number列的数值依次除以a[i][i],这样就实现了未知量系数的改变。第三步减去第一行乘以每一行的第一个数,使得每一行的第一个数变为0:{a[i][j]=a[i][j]-(temp*a[cishu-1][j]);},这样就完成逐一对未知量的消去,变成了对其中一个未知量的求解,生成了增广矩阵。4.3方程组求解判断模块方程组的解的情况较复杂,有唯一解、无解和无数解三种情况,本模块完成了对方程组解情况的判定和求解表示,系统的表现解的情况。基于初等变换后,第一行以下的等式中的第一个未知量消除,然后再将第二个以下的等式中的第二个未知量消除。以此类推,这样可使整个方程组变成一个三角形似的格式,最后一行变得出其中一个未知量的数值。之后再将已得出的未知量一个个地代入已被简化的等式中的未知方程中,就可求出其余未知量了。在模块1中此语句(for(i=0;i<number;i++){biaoji[i]=1;})对方程组假设所有未知量都有解并进行标记。矩阵转换并计算后,规定biaoji[i]=0表示为无解;biaoji[i]=1表示为有解;biao[i]=2表示为无穷解。这样就对方程解的情况就行了详细的区分,增强了程序的可操作性。4.4辅助计算模块本模块是对线性方程组求解程序的补充应用,编写对常用函数进行计算程序。c语言库中含有各种函数库,直接进行调用。此模块可以对三角函数,反三角函数,#x,Inxlogx求解计算,并能进行弧度制与角度制进行切换。由于此模块程序计算的函数较多,选择具有代表性的三角函数计算程序。此程序如下:if(shuzhileixing=='1'){printf("角度值.<例如您想输入60度,您输入60即可.>\n");}if(shuzhileixing=='2'){printf("弧度值.\n<您只能输入xpi类型数据.例如您想输入2pi,您输入2即可.(pi=3.1415926535)>\n");printf("请您配合.否则系统可能不能正常运行!\n");printf("\a\a");}if(ch2=T){printf("正在为您求解sinx函数.\n");printf("请您输入x:");scanf("%lf",&x);if(shuzhileixing=='2'){x1=x*PI;y=sin(x1);printf("sin%lfpi=%lf\n”,x,y);}else{x1=(x/180)*PI;y=sin(x1);printf("sin%lf度=%lf\n”,x,y);}}根据用户输入的不同字符,输入字符1则可以输入任意弧度,输入字符2则可以输入任意角度,用户可以进行弧度制与角度制间任意切换。4.5主函数模块程序需要主函数对各模块函数的调用,这样就不需要把所有的模块函数写在一个主函数内,便于读懂程序,各模块的分工清晰。本模块对各模块进行调用,包括xianxingfangchengzuqiuj通数和fuzhuxitong函数,选择字符1,调用xianxingfangchengzuqiuj选择字符2,调用fuzhuxitong选择字符0,退出。4.6界面模块界面模块由主界面和辅助系统界面模块组成,用户输入的字符不同就可以进行相关的计算,同时规定输入的字符必须符合程序相关的设定,否则在界面中没有反应,这样避免了出现错误。例如语句{while((ch-'0')<0||(ch-'0')>2){ch限制了输入字符的范围。函数调用库函数windows.h文件改变背景和字体颜色,使其背景为淡绿色,字体为亮白色。这样不仅有了美化效果,更能保护视力。函数更调用了system(”clS,清屏函数,保证了每个功能模块有独立的操作界面,改变了单界面的繁杂,简洁明了。5调试与操作说明5.1程序调试分析本程序在求线性方程组的时候,充分考虑用户输入方程组不同形式和未知量的求解的不同情况。基于高斯消元法求解多元线性方程核心思想,对程序的调试分析。为扩充程序的使用能力,对程序功能进行加强,设计了辅助的程序。在调试过程中才用分模块的调试方法,对程序进行调试分析和改进。5.2调试结果5.2.1开始界面打开VC6.0,运行线性方程求解系统代码,进入线性方程组求解系统,可看见选择项,输入“1进入线性方程组求解模块;输入“2进入辅助系统;输入“0退出线性方程组求解操作系统»»»»»»»»»»»)<^:®用线性方程组求解操作系»»»»»»»»»»»>-进X求辞系统.-磐入辅商索统・肺一丧出-»»»»»»»»»»»»>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>»»»»»»>请兹又您的选母图5-1开始界面5.2.2方程组求解界面在主界面输入“1,”进入线性方程组求解模块,按提示输入线性方程组的方程个数和未知数个数后回车键,再按提示输入每个方程的各项系数和常数,回车键得到线性方程组的解,若所求线性方程组无解,则会显示方程组无解,按任意键可返回主菜单。>>>>>>>>>>>>>>>>>>>>>>>>>>>>正在为忠束解线性方程组•>>>>>>>>>>>>>>>>>>>>>>>>>>>>请输入线性方程组的方程个数和未岸*入第1个方程的各项系数和常数:13-7-8请输入第2个方程的各项系数和常数:篱人蠢个方程的各项系数和常数:高款肇寻方程的各项系数和常数:14-12-15线性方程组的解为:xi=5.000000x2=-2.000000X3=1.000000>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>按任意键近I!主菜单=>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>图5-2有解情况的图求解线性方程组界面,通过输入方程个数和未知数,确定矩阵大小且输入各项系数和常数。方程组输入完毕按回车键即给出答案。再按任意键返回主菜单。»»»»»»»»»»»»»»11请输入线性方程组的方程个数和未知数住»»»»»»»»»»»»»»11请输入线性方程组的方程个数和未知数住请输入第1个方程的各项系数和常数:3-3156请输入第2个方程的各项系数和W:帝盅搭捽方程的各项系数和常数:翕忌翟且番解冷H无解,点无解,©无解,x4=C4成为任意常数-<x=l,2,3,……>»»»»»»»»»»»»»»»按任意键返E1主菜^-»»»»»»»»»»»»»»»图5-3无解情)兄图说明:c4为任意常数。求解线性方程组界面,通过输入方程个数和未知数,确定矩阵大小且输入各项系数和常数。方程组输入完毕按回车键即给出答案。再按任意键返回主菜单。Cx为任意常数,其中未知量用Cx表示,表示为无穷解情况。»»»»»»»»»»»»»»正在为您求解线性方程组.»»»»»»»»»»»»»»请输入线性方程组的方程个数和未菊敏哦:*34请输入第1个方程的各项系数和常数:1-11-11请输入第2个方程的各项系数和常数:1-1-11请输入第3个方程的各项系数和常数:1-1-22-05&性方程组的靡如…xl=1.岫&姬『C2-C3+C4X2=-1.000000+2.000000C3-2.000000C4x3=0.500000+C4x4=C4成为任意常数.<x=l,2,3,■»»»»»»»»»»»»»»»按任意键返回主菜单.»»»»»»»»»»»»»»»图5-4无穷解情况选择进入辅助界面,并通过数字选择计算哪一种函数。图5-5辅助程序界面选择进入求解三角函数界面,并通过数字选择计算哪一个函数。»»»»»»»»»»»»欢迎您使用三角函数求解操作系统!»»»»»»»»»»»»1- sinx 2 - cosx 3 - tanx4— cscx 5 - secx 6 - cota7— arcsinx 8 - arccosx 9 - arctanx»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»>请输入您的选择:图5-6三角函数求解界面选择求解sin函数,通过数字控制进入求解sin函数界面,输入x,即给定答案并再次选择“0”返回辅助系统主菜单;“1”继续计算。a度值.〈例如您想输入舞度,您输入6匝即可.>./MfeinxK'请您输Ax:60[^=^.866025技侦返回蜀瞻统主菜单成一键继续;!藤其余任意矗返回三角函数求解主菜单.图5-7正弦函数求解界面#include<stdio.h>#include<math.h>#include<conio.h>#include<windows.h>#defineMAX50#definePI3.1415926535intxianxingfangchengzuqiujie(){inti,j,fnumber,hangmax,k,cishu,wu=0,biaoji[MAX],i1,wnumber,number,index;doublea[MAX][MAX+1],A[MAX][MAX+1],max,temp,x[MAX],chazhi;charch;system("cls");printf(">>>>>>>>>>>>>>>>>>>>正在为您求解线性方程组.>>>>>>>>>>>>>>>>>>>>>>>>\n”);printf(-请输入线性方程组的方程个数和未知数的个数:\n");scanf("%d%d”,&fnumber,&wnumber);if(fnumber>=wnumber){number=fnumber;}else{number=wnumber;}if(fnumber!=wnumber){for(i=0;i<number;i++){for(j=0;j<number+1;j++){a[i][j]=0;}}〃矩阵置0}if(fnumber<=wnumber){for(i=0;i<fnumber;i++){printf("请输入第%d个方程的各项系数和常数:\n",i+1);for(j=0;j<(wnumber+1);j++){scanf("%lf",&a[i][j]);}}〃输入系数和常数}else{for(i=0;i<fnumber;i++){printf("请输入第%d个方程的各项系数和常数:\n",i+1);for(j=0;j<(wnumber+1);j++){if(j!=wnumber){scanf("%lf",&a[i][j]);}else{scanf("%lf",&a[i][j+1]);}}〃输入系数和常数}for(i=0;i<number;i++){biaoji[i]=1;}〃首先假设所有未知数有解for(cishu=1;cishu<number;cishu++){for(i=j=(cishu-1);i<number;i++){if(a[i][j]<0){A[i][j]=-a[i][j];}else{A[i][j]=a[i][j];}}〃将第1列数值取绝对值放入数组A中hangmax=j;max=A[cishu-1][j];for(i=j+1;i<number;i++){if(A[i][j]>max){hangmax=i;max=A[i][j];}}〃找到第1列的最大值以及所在行if(hangmax!=j){i=cishu-1;for(j=0;j<=number;j++){temp=a[i][j];a[i][j]=a[hangmax][j];a[hangmax][j]=temp;}}〃第洌最大值所在行的值与第一行的值互换temp=a[cishu-1][cishu-1];if(temp){for(j=i=(cishu-1);j<=number;j++){a[i][j]=a[i][j]/temp;}〃在第i彳亍中,从第洌到第number列的数值依次除以a[i][i];for(k=cishu;k<number;k++){temp=a[k][cishu-1];for(i=k,j=cishu-1;j<=number;j++){a[i][j]=a[i][j]-(temp*a[cishu-1][j]);}}}for(i=cishu-1;i<number;i++){for(j=cishu-1;j<=number;j++){if(a[i][j]!=0){if(fabs(a[i][j])<pow(0.1,15)){a[i][j]=0;}}}}}〃生产增广矩阵for(i=number-1;i>=0;i--){i1=i;if(i1==(number-1)){if(a[i][i]!=0){chazhi=a[i][number];x[i+1]=chazhi/a[i][i];}else{if(a[i][i+1]!=0){biaoji[i]=0;//标记为无解wu++;}else{biaoji[i]=2;//标记为无穷解}}}else{chazhi=a[i][number];for(j=i+1;(j<number)&&(biaoji[i]!=0);j++){if(biaoji[j]==1){if(a[i][j]!=0){chazhi=chazhi-a[i][j]*x[j+1];}}if(biaoji[j]==0){if(a[i][j]!=0){biaoji[i]=0;wu++;}else{if((a[i][j-1]!=0)&&(a[i][j+1])!=0){biaoji[i]=0;wu++;}}}if(biaoji[j]==2){if(a[i][j]!=0){biaoji[i]=2;}}}if(biaoji[i]==1){if(a[i][i]!=0)x[i+1]=chazhi/a[i][i];}else{if(chazhi==0){biaoji[i]=2;}else{biaoji[i]=0;wu++;}}}}}〃根据增广矩阵代入求解if(wu!=number){printf("线性方程组的解为:\n");for(i=1;i<=wnumber;i++){index=0;if(biaoji[i-1]==1){if(x[i]!=0){printf("x%d=%lf”,i,x[i]);}else{printf("x%d=0”,i);}}if(biaoji[i-1]==0){printf("x%d无解!”,i);}if(biaoji[i-1]==2){chazhi=a[i-1][number];for(j=i;j<number;j++)if((biaoji[j]==1)&&(a[i-1][j]!=0)){chazhi=chazhi-a[i-1][j]*x[j+1];}}if(chazhi!=0){printf("x%d=%lf”,i,chazhi);for(j=i;j<number;j++){if((biaoji[j]==2)&&(a[i-1][j]>0)){if(a[i-1][j]!=1){printf("%lfC%d”,-a[i-1][j],j+1);}else{printf("-C%d”,j+1);}}if((biaoji[j]==2)&&(a[i-1][j]<0)){if(a[i-1][j]!=-1){printf("+%lfC%d”,-a[i-1][j],j+1);}else{printf("+C%d”,j+1);}}}}else{if(a[i-1][i-1]==0){printf("x%d=C%d”,i,i);}else{printf("x%d=",i);for(j=i;j<number;j++){if((biaoji[j]=2)&&(a[i-1][j]>0)){if(a[i-1][j]!=1){printf("-%lfC%d",a[i-1][j],j+1);}else{printf("-C%d”,j+1);}index++;}if((biaoji[j]==2)&&(a[i-1][j]<0)){if(index!=0){if(a[i-1][j]!=-1){printf("+%lfC%d”,-a[i-1][j],j+1);//hhh}else{printf("+C%d”,j+1);}index++;}else{if(a[i-1][j]!=-1){printf("%lfC%d",-a[i-1][j],j+1);//ggg}else{printf("C%d”,j+1);}index++;}}printf("\n");}}else{printf("方程组无解!\n");}〃输出结果for(i=0;i<wnumber;i++){if(biaoji[i]==2){printf("Cx为任意常数.(x=1,2,3,・・・・\n)');break;}}printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>按任意键返回主菜单.>>>>>>>>>>>>>>>>>>>>>>”);ch=getch();system("cls");return0;}charzhujiemian(){charch='3';printf(">>>>>>>>>>>>>>>欢迎您使用线性方程组求解操作系统!>>>>>>>>>>>>>>>>>>>\n”);printf(" 1 -进入求解系统.\n");printf(" 2 -进入辅助系统.\n");printf(" 0 -退出.\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");printf("请输入您的选择:”);while((ch-'0')<0||(ch-'0')>2){ch=getch();}returnch;}//主界面charfuzhuxitongjiemian(){charch='5';system("cls");printf(">>>>>>>>>>>欢迎您使用线性方程组求解辅助系统!>>>>>>>>>>>>>>>>>>>>>>>\n”);printf("1-求解三角函数.\n");printf("2-求解eAx函数,\n");printf("3-求解lgx函数.\n");printf("4-求解lnx函数,\n");printf("0-退出,\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");printf("请输入您的选择:”);while((ch-'0')<0ll(ch-'0')>4){ch=getch();}system("cls");returnch;}〃辅助系统界面intfuzhuxitong(){doublex,y,x1;inti;charch,ch1,ch2,ch3,shuzhileixing;while((ch=fuzhuxitongjiemian())!='0'){ch1='1';if(ch=='1'){while(ch1!='0'){shuzhileixing='3';system("cls");printf(">>>>>>>>>>欢迎您使用三角函数求解操作系统!>>>>>>>>>>>>>>>>\n”);printf("1-sinx2-cosx3-tanx\n");printf("4-cscx5-secx6-cota\n");printf("7-arcsinx8-arccosx9-arctanx\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");printf("请输入您的选择:,ch2=getch();while((ch2-'0')<1ll(ch2-'0')>9){ch2=getch();}system("cls");if((ch2-'0')>=7){shuzhileixing='3';}else{printf("以下是您输入的数值类型:\n");printf("1-角度值.2-弧度值.\n");printf("请选择您输入的数值类型:”);shuzhileixing=getch();}ch3='1';while((shuzhileixing!='1')&&(shuzhileixing!='2')&&(ch2-'0')<7){if(shuzhileixing=='3'){if((ch2-'0')<7){shuzhileixing=getch();}else{break;}}else{shuzhileixing=getch();}}while(ch3=='1'){system("cls");printf('您选择输入”);if(shuzhileixing=='1'){printf("角度值.<例如您想输入60度,您输入60即可.>\n");if(shuzhileixing=='2'){printf("弧度值.\n<您只能输入xpi类型数据.例如您想输入2pi,您输入2即可.(pi=3.1415926535)>\n");printf(-请您配合.否则系统可能不能正常运行!\n");printf("\a\a");}if(ch2=='1'){printf("正在为您求解sinx函数.\n");printf("请您输入x:");scanf("%lf”,&x);if(shuzhileixing=='2'){x1=x*PI;y=sin(x1);printf("sin%lfpi=%lf\n”,x,y);}else{x1=(x/180)*PI;y=sin(x1);printf("sin%lfg=%lf\n",x,y);}}if(ch2=='2'){printf("正在为您求解cosx函数.\n");printf("请您输入x:");scanf("%lf”,&x);if(shuzhileixing=='2'){x1=x*PI;y=cos(x1);printf("cos%lfpi=%lf\n”,x,y);}else{x1=(x/180)*PI;y=cos(x1);printf("cos%lfg=%lf\n",x,y);}}if(ch2=='3')printf("正在为您求解tanx函数.\n");printf(-请您不要输入无解的x.否则答案不正确!\n");printf("\a\a");printf("请您输入x:");scanf("%lf”,&x);if(shuzhileixing=='2'){x1=x*PI;y=tan(x1);printf("tan%lfpi=%lf\n”,x,y);}else{x1=(x/180)*PI;y=tan(x1);printf("tan%lfg=%lf\n",x,y);}}if(ch2=='4'){printf("正在为您求解cscx函数,\n");printf(-请您不要输入无解的x.否则答案不正确!\n");printf("\a\a");printf("请您输入x:");scanf("%lf”,&x);if(shuzhileixing=='2'){x1=x*PI;y=sin(x1);y=1/y;printf("csc%lfpi=%lf\n”,x,y);}else{x1=(x/180)*PI;y=sin(x1);y=1/y;printf("csc%lfg=%lf\n",x,y);}}if(ch2=='5'){printf("正在为您求解secx函数,\n");printf(-请您不要输入无解的x.否则答案不正确!\n");printf("\a\a");printf("请您输入x:");scanf("%lf”,&x);if(shuzhileixing=='2'){x1=x*PI;y=cos(x1);y=1/y;printf("sec%lfpi=%lf\n”,x,y);}else{x1=(x/180)*PI;y=cos(x1);y=1/y;printf("sec%lfg=%lf\n",x,y);}}if(ch2=='6'){printf("正在为您求解cotx函数,\n");printf(-请您不要输入无解的x.否则答案不正确!\n");printf("\a\a");printf("请您输入x:");scanf("%lf”,&x);if(shuzhileixing=='2'){x1=x*PI;y=tan(x1);y=1/y;printf("cot%lfpi=%lf\n”,x,y);}else{x1=(x/180)*PI;y=tan(x1);y=1/y;printf("cot%lfg=%lf\n",x,y);}}if(ch2=='7'){i=1;x=2;while((x>1)ll(x<-1)){if(i==1){printf("正在为您求解arcsinx函数,\n");printf("请您输入x(x<=1且x>=-1):");scanf("%lf”,&x);i++;}else{printf("您的输入有误!请您重新输入.\n");printf("\a\a");Sleep(2000);system("cls");printf("您选择输入实际数值.\n");printf("正在为您求解arcsinx函数,\n");printf("请您输入x(x<=1且x>=-1):");scanf("%lf”,&x);}}y=asin(x);printf("弧度值:”);printf("arcsin%lf=%lf\n”,x,y);y=(180*y)/PI;printf("角度值:");printf("arcsin%lf=%lfg\n",x,y);}if(ch2=='8'){i=1;x=2;while((x>1)||(x<-1)){if(i==1){printf("正在为您求解arccosx函数,\n");printf("请您输入x(x<=1且x>=-1):");scanf("%lf”,&x);i++;}elseprintf("您的输入有误!请您重新输入.\n");printf("\a\a");Sleep(2000);system("cls");printf("您选择输入实际数值.\n");printf("正在为您求解arccosx函数,\n");printf("请您输入x(x<=1且x>=-1):");scanf("%lf”,&x);}}y=acos(x);printf("弧度值:”);printf("arccos%lf=%lf\n",x,y);y=(180*y)/PI;printf("角度值:");printf("arccos%l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论