| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2644 人关注过本帖
标题:利用指向函数的指针作函数参数编写一个定积分的通用公式
只看楼主 加入收藏
不二伊人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-10-7
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
利用指向函数的指针作函数参数编写一个定积分的通用公式
求出以下2个函数的定积分
∫(1+x)dx,∫(2x+3)dx
(上下限打不出,已省)
搜索更多相关主题的帖子: 通用 
2015-10-07 21:32
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
通用公式?

一片落叶掉进了回忆的流年。
2015-10-08 10:11
不二伊人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-10-7
收藏
得分:0 
回复 2楼 诸葛欧阳
就是编一个程序,可以求出定积分的,用的是指向函数的指针作函数参数,
例如 float integral(float a,float b,float(*fun)(float)),
3个形参:下限a,上限b以及指向函数的指针变量fun;
分别定义2个函数f1,f2,代表上面的2个函数(1+x),(2x+3),然后先后调用integral函数2次,求出不同函数的定积分
2015-10-08 10:52
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:2 
以下是引用不二伊人在2015-10-8 10:52:17的发言:

就是编一个程序,可以求出定积分的,用的是指向函数的指针作函数参数,
例如 float integral(float a,float b,float(*fun)(float)),
3个形参:下限a,上限b以及指向函数的指针变量fun;
分别定义2个函数f1,f2,代表上面的2个函数(1+x),(2x+3),然后先后调用integral函数2次,求出不同函数的定积分


可以根据定积分原理求近似值,分段求和

剑栈风樯各苦辛,别时冰雪到时春
2015-10-08 11:12
不二伊人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-10-7
收藏
得分:0 
回复 4楼 林月儿
用编程怎么写?
2015-10-08 12:05
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:2 
你说的通用是指对多项式通用吧,对于一般的任意函数求定积分恐怕无法做到。可以利用积分的定义求解这个以前在论坛写过你搜搜

一片落叶掉进了回忆的流年。
2015-10-08 12:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我曾經在壇上發過一個

授人以渔,不授人以鱼。
2015-10-08 21:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:16 
程序代码:
/*
功能:利用函數指針編寫一個通用的求定積分函數
*/

#include <stdio.h>
#include <math.h>
#include <conio.h>

double Get_Integral(double fun(double), double down_bound, double up_bound)
{
    static const double interval = 0.0001;

    double integral = 0;
    for (double x = down_bound; x <= up_bound; x += interval)
    { 
        integral += fun(x) * interval;
    }

    return integral;
}

double Fun1(double x)
{
    return x;
}

double Fun2(double x)
{
    return x * x;
}

double Fun3(double x)
{
    return sin(x);
}

double Fun4(double x)
{
    return cos(x);
}

int main(void)
{
    double down_bound = -1;
    double up_bound = 1;
    double integral;

    integral = Get_Integral(Fun1, down_bound, up_bound);
    printf_s("Integral f(x)=x [%.4f, %.4f] = %.4f\n", down_bound, up_bound, integral);

    integral = Get_Integral(Fun2, down_bound, up_bound);
    printf_s("Integral f(x)=x^2 [%.4f, %.4f] = %.4f\n", down_bound, up_bound, integral);

    integral = Get_Integral(Fun3, down_bound, up_bound);
    printf_s("Integral f(x)=Sin(x) [%.4f, %.4f] = %.4f\n", down_bound, up_bound, integral);

    integral = Get_Integral(Fun4, down_bound, up_bound);
    printf_s("Integral f(x)=Cos(x) [%.4f, %.4f] = %.4f\n", down_bound, up_bound, integral);

    _getch();
    return 0;
}

授人以渔,不授人以鱼。
2015-10-12 18:49
快速回复:利用指向函数的指针作函数参数编写一个定积分的通用公式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019268 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved