c語言級數cosx
A. 如何用c語言設計計算cosx的近似值
1、首先在電腦中打開Dev-C++,接著在打開的操作主頁面中,寫好頭函數#include <stdio.h>#include <math.h>。
B. c語言求COS怎麼錯了
你看看是不是你的C語言軟體的配置有誤.
軟體一般不放在默認路徑下,都會出現這種情況的.
你的串號我已經記下,採納後我會幫你製作
C. C語言編程,cosx問題
請注意以下幾點:1
,選擇合適的數據結構,這將有助於和擴展。
2,演算法完善,如果你正在寫的困難,然後
盡量選擇笨的辦法,而不是費力編寫復雜的代碼
3,切成小代碼盡可能的功能,一個功能一般不超過10行
4,變數命名約定不產生混淆
5,從最簡單的,逐步的測試完成了測試部分的一部分,
不要等到一堆碼,去測試,問題成片的結果,我不知道這個
6,精心挑選的測試情況下,不要隨便進入,以防止隱藏的問題測試出
7,如果時間允許,嘗試一個簡單的評論
8,你可以添加一些測試代碼,以確定程序狀態
注意這幾點,我認為,應該能夠快速解決問題
D. 用c語言編寫cosx函數
cosx函數
#include<stdio.h>
#include<math.h>
int main()
{
int n=0;
double x,sum=0;
printf("please enter x:");
scanf("%lf",&x);//
double cosx(double x,int n);
do
{
sum=sum+cosx(x,n);
n=n+1;
}
while(fabs(cosx(x,n))>1e-8);
printf("%9.8f\n",sum);
return 0;
}
double cosx(double x,int n)
{
double p,q;//
p=pow(x,2*n);
double fact(int n);//
q=fact(2*n);
if(n%2)
return(-p/q);
else
return(p/q);
}
double fact(int n)//
{
double ans=1; int i;
if(n<=1)
return 1;
for(i=1;i<=n; ++i)
ans*=i;
return ans;
}
cosx函數即反餘弦函數
函數y=cosx(x∈[0,π])的反函數叫做反餘弦函數,
記作y=arccosx(x∈[-1,1]).
E. 用C語言求cosX的值
x -- 用弧度值輸入
精度 -- 1E-07
泰勒公式:
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! ...
程序:
#include<stdio.h>
#include<math.h>
void main(){
double x,term,sum,x2;
int i;
printf("input x in HuDu\n");
scanf("%lf",&x);
x2 = x * x;
sum = 1.0;
term = 1.0;
for (i=2;i<20;i=i+2){
term = term*x2/(double) (i * (i-1)) * (-1.0);
if (fabs(term) < 1.0E-07) break;
sum = sum + term;
}
printf("cos(x)=%lf\n",sum);
}
--------------
算例:
1.570796
cos(x)=0.000000
0.78539
cos(x)=0.707113
3.14159
cos(x)=-1.000000
F. C語言求cosx和它的近似值兩個相互比較 謝謝
用Visualstudio 2019編寫:
#define _STDC_WANT_LIB_EXT1_ 1
#include<stdio.h>
#include<math.h>
double term (int xn, double xrt, double rt);
main()
{
int a=0;
int at = 0;
double r = 0;
double rt = 0;
double rtc = 0;
int n = 0;
int i = 0;
double pi = 3.14159265;
printf("輸入想要計算cos值的角度(註:不是弧度):");
scanf_s("%d", &a);
printf("輸入想要在哪個角度展開泰勒級數:\n");
scanf_s("%d", &at);
printf("輸入想展開泰勒級數的階數:");
scanf_s("%d", &n);
r = a * pi / 180;
printf("系統計算%d度的cos值為:\n%f",a,cos(r));
rt = at * pi / 180;
for (i = 0; i <= n; i++)
{
rtc += term(i, rt, r);
}
printf("\n%d在%d處的cos%d階泰勒展開值為:\n%f", a, at, n, rtc);
system("pause");
}
double term(int xn, double xrt, double xr)
{
double y = 0 ;
int x3 = 0;
int x4 = 0;
int divisor = 1;
double d = xr - xrt;
if (xn == 0)
d = 1;
for (x3 = 2; x3 <= xn; x3++)
{
d *= d;
}
for (x4 = 1; x4 <= xn; x4++)
{
divisor = divisor * x4;
}
switch (xn % 4)
{
case 0:
y = cos(xrt)*d/divisor;
break;
case 1:
y = -sin(xrt)*d/divisor;
break;
case 2:
y = -cos(xrt)*d/divisor;
break;
case 3:
y = sin(xrt)*d/divisor;
break;
}
return y;
}