C语言写龙格库塔算法
时间: 2023-11-25 12:51:02 浏览: 67
以下是C语言实现龙格库塔算法的代码示例:
```c
#include <stdio.h>
// 定义函数f(x, y)
double f(double x, double y) {
return x * x + y * y;
}
// 定义龙格库塔算法函数
double rungeKutta(double x0, double y0, double x, double h) {
// 计算步数
int n = (int)((x - x0) / h);
double k1, k2, k3, k4, k5;
// 迭代计算
for (int i = 1; i <= n; i++) {
// 计算k1~k4
k1 = h * f(x0, y0);
k2 = h * f(x0 + h / 2, y0 + k1 / 2);
k3 = h * f(x0 + h / 2, y0 + k2 / 2);
k4 = h * f(x0 + h, y0 + k3);
// 计算y(i+1)
y0 = y0 + (k1 + 2 * k2 + 2 * k3 + k4) / 6;
// 计算x(i+1)
x0 = x0 + h;
}
return y0;
}
int main() {
double x0 = 0, y = 1, x = 2, h = 0.2;
printf("The value of y at x is : %lf", rungeKutta(x0, y, x, h));
return 0;
}
```