C语言实现求导求积分
之前一直奇怪为什么c++只有Eigen这个库用来处理矩阵,为什么没有高等数学的库呢?今天我明白了,因为自己实现非常简单!
app.c
#include <math.h>
#include <stdio.h>
typedef double (*fun)(double x);
double Δx = 0.00000001;
double derivative(fun f, double x) {
double Δy = f(x + Δx) - f(x);
return Δy / Δx;
}
double integrate(fun f, double x1, double x2) {
double y = 0;
// 这个循环次数很多,需要使优化
// scipy计算的速度就特别块
for (double x = x1; x <= x2; x += Δx) {
y += (f(x + Δx) - f(x));
}
return y;
}
double f1(double x) {
// x * * 3 + 3 * *x
return pow(x, 3) + pow(3, x);
}
int main() {
double d = derivative(f1, 1.0);
printf("Δy/Δx (x=1.0): %lf\n", d); // Δy/Δx (x=1.0): 6.295837
double i = integrate(f1, 1.0, 5.0);
printf("i: %lf\n", i); // i: 364.000002
return 0;
}
makefile
app: app.c
gcc -o $@ $^ -lm
run:
./app
作者 :秋时
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库