变步长复合梯形公式matlab,变步长梯形公式(C语言)

变步长梯形公式(C语言)

程序:

// cehngxu.cpp : 定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include"stdio.h"

#include"math.h"

double f(double x) //这里自定义了函数,因为出现sin(0)/0的情况,系统无法计算;{

double y;

if (x == 0)

y = 1; //把x=0作为一种情况,单独拿出来;

else

y = sin(x) / x; //正常情况下的函数;

return(y);

} //编写这个自定义函数便于你在作业中的计算,对于不用的题目只需改动一下函数即可计算;

void main() //主函数;

{

double a , b ,h,k,s,t[4998]; //数组的定义中不能出现变量,故对其任意取值,一般取一个很大的数;

int n = 1, m = 0;

printf("please input a=");

scanf_s("%lf", &a); //在VC环境下用scanf输入没有问题,但是在我这编译环境visual studio 2013下需要用scanf_s()输入;

printf("please input b=");

scanf_s("%lf", &b);

t[1] = (b - a)*(f(a) + f(b)) / 2;

do

{

h = (b - a) / n;

s = 0;

for (k = 0; k < n; k++)

{

s += f(a + (k + 0.5)*h);

}

t[2 * n] = t[n] / 2 + h / 2 * s; //梯形的递推公式

n = 2*n;

m = m + 1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值