前言:
目前大家对“matlab转c语言”可能比较关注,小伙伴们都想要了解一些“matlab转c语言”的相关资讯。那么小编在网络上收集了一些对于“matlab转c语言””的相关知识,希望你们能喜欢,同学们一起来了解一下吧!#include <stdio.h>#include <math.h>void polyfit(double* x, double* y, int degree, double* coeffs) { int i, j, k; int n = degree + 1; double X[2 * n]; for (i = 0; i < 2 * n; i++) { X[i] = 0; for (j = 0; j < n; j++) X[i] += pow(x[j], i); } double B[n][n + 1], a[n]; for (i = 0; i < n; i++) for (j = 0; j < n; j++) B[i][j] = X[i + j]; double Y[n]; for (i = 0; i < n; i++) { Y[i] = 0; for (j = 0; j < n; j++) Y[i] += pow(x[j], i) * y[j]; } for (i = 0; i < n; i++) B[i][n] = Y[i]; n--; for (i = 0; i < n; i++) { for (k = i + 1; k < n; k++) { double t = B[k][i] / B[i][i]; for (j = 0; j <= n; j++) B[k][j] -= t * B[i][j]; } } for (i = n - 1; i >= 0; i--) { a[i] = B[i][n]; for (j = 0; j < n; j++) if (j != i) a[i] -= B[i][j] * a[j]; a[i] /= B[i][i]; } for (i = 0; i < degree + 1; i++) coeffs[i] = a[i];}int main() { double x[] = {1, 2, 3, 4}; double y[] = {1, 4, 9, 16}; int degree = 2; double coeffs[100]; polyfit(x, y, degree, coeffs); int i; for (i = 0; i < degree + 1; i++) printf("%lf ", coeffs[i]); return 0;}
该代码使用数组“x”和“y”作为输入,其中“degree”是多项式的次数。它返回多项式的系数,存储在数组“coeffs”中。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #matlab转c语言 #matlab语言转c语言