a*x^3+b*x^2+c*x+d怎么拟合

ashleycoder 2011-11-09 09:02:28
给六个点,最好有具体的c/c++代码
...全文
227 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaopeng2511 2011-11-09
  • 打赏
  • 举报
回复
头文件:<math.h>
函数原型:double poly(double x, int degree, double coeffs [] )
函数用途:计算多项式
输入参数:计算 c[n]*x^n+c[n-1]x^n-1+.....+c[1]*x+c[0] 符号^表示幂
输出参数:
返回值:多项式的计算结果

函数例子:

#include <stdio.h>
#include <math.h>
int main(void)
{
double array[] = { -1.0, 5.0, -2.0, 1.0 };
double result;
result = poly(2.0, 3, array);
printf("The polynomial: -x^3 + 5.0*x^2 -2.0*x + 1 at 2.0 is %lf",result);
return 0;
}
kerbcurb 2011-11-09
  • 打赏
  • 举报
回复
最小二乘得出的曲线并不经过已知点!

假设你有5个点,x是自变量,y是函数值,你想用3阶多项式拟合。
x[5],y[5]记录那些坐标点

矩阵A =

|1 x[0] x[0]^2 x[0]^3|
|1 x[1] x[1]^2 x[1]^3|
......................
|1 x[4] x[4]^2 x[4]^3|

矩阵B是A的转值矩阵

数组C[4]是多项式的系数

(B * A )C = Y//Y是y[5]组成的列矢量,为已知
求解这个方程就得到了C[0],C[1],...C[4]
这就是最小二乘
那种点到曲线距离的结果和这个是一样
ashleycoder 2011-11-09
  • 打赏
  • 举报
回复
我需要的是具体代码

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧