적분이라든지
소스 프로그램
#include<stdio.h>
int sekibunn(int x[], int bottom, int top) //定積分の計算
{
int ans, t[6] = {1, 1, 1, 1, 1, 1}, b[6] = {1, 1, 1, 1, 1, 1}, i;
t[1] = top;
b[1] = bottom;
for (i = 0; i < 2; i++) //2乗の計算
{
t[2] *= top;
b[2] *= bottom;
}
for (i = 0; i < 3; i++) //3乗の計算
{
t[3] *= top;
b[3] *= bottom;
}
for (i = 0; i < 4; i++) //4乗の計算
{
t[4] *= top;
b[4] *= bottom;
}
for (i = 0; i < 5; i++) //5乗の計算
{
t[5] *= top;
b[5] *= bottom;
}
ans = ((t[5] * x[4] / 5) + (t[4] * x[3] / 4) + (t[3] * x[2] / 3) + (t[2] * x[1] / 2) + (t[1] * x[0])) - ((b[5] * x[4] / 5) + (b[4] * x[3] / 4) + (b[3] * x[2] / 3) + (b[2] * x[1] / 2) + (b[1] * x[0]));
return ans;
}
int main(void)
{
int x[] = {0, 0, 0, 0, 0};
int i;
int or, top, bottom;
printf("整数を入力してください。\n");
for (i = 4; i >= 0; i--)
{
printf("x^%dの係数:", i);
scanf("%d", &x[i]);
}
printf("y=(%d)x^4+(%d)x^3+(%d)x^2+(%d)x+(%d)\n", x[4], x[3], x[2], x[1], x[0]);
printf("微分or定積分...1 / 0:");
scanf("%d", & or);
if (or == 0)
{
printf("範囲は?");
printf("下のほう :");
scanf("%d", &bottom);
printf("上のほう :");
scanf("%d", &top);
printf("面積は%dです。", sekibunn(x, bottom, top));
}
else if(or == 1){
printf("y=(%d)x^3+(%d)x^2+(%d)x+(%d)", x[4]*4, x[3]*3, x[2]*2, x[1]);
}
return 0;
}
결과로서는 그다지 정확한 숫자는 낼 수 없었습니다. 소수점 이하가 있어 정수 부분이 2자리 이상이 되는 숫자의 형태가 없고, 조합해 잘 표현하는 방법도 생각나지 않았습니다. 그러나 정수 부분에서는 대체로 정확하게 되도록 만들 수 있었기 때문에 좋았습니다.
실행 결과(정적분)
2\int_{0}^{2}(x^4-8x^2+16)dxを計算してみました。
実際の答えが\frac{512}{15}となります。
/*整数を入力してください。
x^4の係数:2
x^3の係数:0
x^2の係数:-16
x^1の係数:0
x^0の係数:32
y=(2)x^4+(0)x^3+(-16)x^2+(0)x+(32)
微分or定積分...1 / 0:0
範囲は?下のほう :0
上のほう :2
面積は34です。*/
512/15는 34.13333이 되기 때문에 대체로 정확하게 되었습니다.
(미분)
y=x^4+4x^3+4x^2-1を微分せよ。実際の答えはy'=4x^3+12x^2+8xです。
/*整数を入力してください。
x^4の係数:1
x^3の係数:4
x^2の係数:4
x^1の係数:0
x^0の係数:-1
y=(1)x^4+(4)x^3+(4)x^2+(0)x+(-1)
微分or定積分...1 / 0:1
微分結果
y'=(4)x^3+(12)x^2+(8)x+(0)*/
라고 이런 느낌이 되었습니다.
감상
다음에 쓸 기회가 있으면, 분수를 나타낼 수 있는 구조를 생각하고 싶습니다.
덤
#include <stdio.h>
//方程式とx軸,xの範囲で囲まれた面積を近似で出すことができる。
int main(void)
{
//今回の場合y=4xで範囲は0~2
double y = 0, x, s = 0, haba = 0.001;
int i, n = (2 / haba);
x = haba;
for (i = 0; i < n; i++)
{
y = 4 * x;
printf("y=%f\n", y);
s += haba * y;
printf("面積=%f\n", s);
x += haba;
printf("x=%f\n\n", x);
}
printf("面積=%f", s);
return 0;
}
사실은 면적=8
결과:면적=8.004000
단순한 생각이었습니다만, 구분 구적법도 재현하면 정말로 근사치가 나올까라고 생각해 시험해 보았습니다.
x의 값, 구하는 범위의”n=(2/n)”의 2를 바꾸면 좋아하는 범위로 할 수 있으므로, 만약 좋으면 놀아 보세요. 덧붙여서 haba를 너무 작게 하면 엄청 시간이 걸립니다.
Reference
이 문제에 관하여(적분이라든지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/y20505/items/3a6616bf5d71279bb6ec
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include<stdio.h>
int sekibunn(int x[], int bottom, int top) //定積分の計算
{
int ans, t[6] = {1, 1, 1, 1, 1, 1}, b[6] = {1, 1, 1, 1, 1, 1}, i;
t[1] = top;
b[1] = bottom;
for (i = 0; i < 2; i++) //2乗の計算
{
t[2] *= top;
b[2] *= bottom;
}
for (i = 0; i < 3; i++) //3乗の計算
{
t[3] *= top;
b[3] *= bottom;
}
for (i = 0; i < 4; i++) //4乗の計算
{
t[4] *= top;
b[4] *= bottom;
}
for (i = 0; i < 5; i++) //5乗の計算
{
t[5] *= top;
b[5] *= bottom;
}
ans = ((t[5] * x[4] / 5) + (t[4] * x[3] / 4) + (t[3] * x[2] / 3) + (t[2] * x[1] / 2) + (t[1] * x[0])) - ((b[5] * x[4] / 5) + (b[4] * x[3] / 4) + (b[3] * x[2] / 3) + (b[2] * x[1] / 2) + (b[1] * x[0]));
return ans;
}
int main(void)
{
int x[] = {0, 0, 0, 0, 0};
int i;
int or, top, bottom;
printf("整数を入力してください。\n");
for (i = 4; i >= 0; i--)
{
printf("x^%dの係数:", i);
scanf("%d", &x[i]);
}
printf("y=(%d)x^4+(%d)x^3+(%d)x^2+(%d)x+(%d)\n", x[4], x[3], x[2], x[1], x[0]);
printf("微分or定積分...1 / 0:");
scanf("%d", & or);
if (or == 0)
{
printf("範囲は?");
printf("下のほう :");
scanf("%d", &bottom);
printf("上のほう :");
scanf("%d", &top);
printf("面積は%dです。", sekibunn(x, bottom, top));
}
else if(or == 1){
printf("y=(%d)x^3+(%d)x^2+(%d)x+(%d)", x[4]*4, x[3]*3, x[2]*2, x[1]);
}
return 0;
}
2\int_{0}^{2}(x^4-8x^2+16)dxを計算してみました。
実際の答えが\frac{512}{15}となります。
/*整数を入力してください。
x^4の係数:2
x^3の係数:0
x^2の係数:-16
x^1の係数:0
x^0の係数:32
y=(2)x^4+(0)x^3+(-16)x^2+(0)x+(32)
微分or定積分...1 / 0:0
範囲は?下のほう :0
上のほう :2
面積は34です。*/
512/15는 34.13333이 되기 때문에 대체로 정확하게 되었습니다.
(미분)
y=x^4+4x^3+4x^2-1を微分せよ。実際の答えはy'=4x^3+12x^2+8xです。
/*整数を入力してください。
x^4の係数:1
x^3の係数:4
x^2の係数:4
x^1の係数:0
x^0の係数:-1
y=(1)x^4+(4)x^3+(4)x^2+(0)x+(-1)
微分or定積分...1 / 0:1
微分結果
y'=(4)x^3+(12)x^2+(8)x+(0)*/
라고 이런 느낌이 되었습니다.
감상
다음에 쓸 기회가 있으면, 분수를 나타낼 수 있는 구조를 생각하고 싶습니다.
덤
#include <stdio.h>
//方程式とx軸,xの範囲で囲まれた面積を近似で出すことができる。
int main(void)
{
//今回の場合y=4xで範囲は0~2
double y = 0, x, s = 0, haba = 0.001;
int i, n = (2 / haba);
x = haba;
for (i = 0; i < n; i++)
{
y = 4 * x;
printf("y=%f\n", y);
s += haba * y;
printf("面積=%f\n", s);
x += haba;
printf("x=%f\n\n", x);
}
printf("面積=%f", s);
return 0;
}
사실은 면적=8
결과:면적=8.004000
단순한 생각이었습니다만, 구분 구적법도 재현하면 정말로 근사치가 나올까라고 생각해 시험해 보았습니다.
x의 값, 구하는 범위의”n=(2/n)”의 2를 바꾸면 좋아하는 범위로 할 수 있으므로, 만약 좋으면 놀아 보세요. 덧붙여서 haba를 너무 작게 하면 엄청 시간이 걸립니다.
Reference
이 문제에 관하여(적분이라든지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/y20505/items/3a6616bf5d71279bb6ec
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
y=x^4+4x^3+4x^2-1を微分せよ。実際の答えはy'=4x^3+12x^2+8xです。
/*整数を入力してください。
x^4の係数:1
x^3の係数:4
x^2の係数:4
x^1の係数:0
x^0の係数:-1
y=(1)x^4+(4)x^3+(4)x^2+(0)x+(-1)
微分or定積分...1 / 0:1
微分結果
y'=(4)x^3+(12)x^2+(8)x+(0)*/
다음에 쓸 기회가 있으면, 분수를 나타낼 수 있는 구조를 생각하고 싶습니다.
덤
#include <stdio.h>
//方程式とx軸,xの範囲で囲まれた面積を近似で出すことができる。
int main(void)
{
//今回の場合y=4xで範囲は0~2
double y = 0, x, s = 0, haba = 0.001;
int i, n = (2 / haba);
x = haba;
for (i = 0; i < n; i++)
{
y = 4 * x;
printf("y=%f\n", y);
s += haba * y;
printf("面積=%f\n", s);
x += haba;
printf("x=%f\n\n", x);
}
printf("面積=%f", s);
return 0;
}
사실은 면적=8
결과:면적=8.004000
단순한 생각이었습니다만, 구분 구적법도 재현하면 정말로 근사치가 나올까라고 생각해 시험해 보았습니다.
x의 값, 구하는 범위의”n=(2/n)”의 2를 바꾸면 좋아하는 범위로 할 수 있으므로, 만약 좋으면 놀아 보세요. 덧붙여서 haba를 너무 작게 하면 엄청 시간이 걸립니다.
Reference
이 문제에 관하여(적분이라든지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/y20505/items/3a6616bf5d71279bb6ec
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <stdio.h>
//方程式とx軸,xの範囲で囲まれた面積を近似で出すことができる。
int main(void)
{
//今回の場合y=4xで範囲は0~2
double y = 0, x, s = 0, haba = 0.001;
int i, n = (2 / haba);
x = haba;
for (i = 0; i < n; i++)
{
y = 4 * x;
printf("y=%f\n", y);
s += haba * y;
printf("面積=%f\n", s);
x += haba;
printf("x=%f\n\n", x);
}
printf("面積=%f", s);
return 0;
}
Reference
이 문제에 관하여(적분이라든지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y20505/items/3a6616bf5d71279bb6ec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)