正交多项式拟合函数

正交多项式拟合函数实验要求 给定函数 f x 在 m 个采样点处的值 f 以及每个点的权重 1 lt i lt m 求曲线拟合的正交多项式 满足最小二乘误差 函数接口定义 intOPA double f doublet intm doublex doublew doublec double eps 在接口定义中 f 是给定函数 f x m 为

实验要求:

给定函数f(x)在 m 个采样点正交多项式拟合函数处的值f(正交多项式拟合函数)以及每个点的权重正交多项式拟合函数(1<= i <= m),求曲线拟合的正交多项式正交多项式拟合函数,满足最小二乘误差

正交多项式拟合函数

函数接口定义:

int OPA( double (*f)(double t), int m, double x[], double w[], double c[], double *eps )

在接口定义中:f是给定函数f(x),m为采样点个数,x传入m个采样点正交多项式拟合函数,w传入每个点的权重;c传回求得的曲线拟合的正交多项式正交多项式拟合函数的系数,eps传入最小二乘误差上限TOL,并且传回拟合的实际最小二乘误差

正交多项式拟合函数

另外,在裁判程序中还定义了常数MAXN,当拟合多项式的阶数达到MAXN却仍未达到精度要求时,即返回 n = MAXN时的结果。

伪代码:


 

  Algorithm: Orthogonal Polynomials Approximation

To approximate a given function by a polynomial with error bounded

by a given tolerance.

Input: number of data m; x[m]; y[m]; weight w[m]; tolerance TOL;

            maximum degree of polynomial Max_n.

Output: coefficients of the approximating polynomial.

  1. 1  Set  j0(x) º 1;  a0 = (j0, y)/(j0, j0);  P(x) = a0 j0(x);  err = (y, y) a0 (j0, y);
  2. 2  Set  a1= (xj0, j0)/(j0, j0);  j1(x) = (x a1) j0(x);
  3. 1 = (j1, y)/(j1, j1);  P(x) += a1 j1(x);  err  -= a1 (j1, y);

Step 3  Set  k = 1;

  1. 4  While (( k < Max_n)&&(|err|³TOL))  do  steps 5-7

                Step 5  k ++;

  1. ak= (xj1, j1)/(j1, j1);  bk-1 = (j1, j1)/(j0, j0);
  2. 2(x) = (x ak) j1(x) bk-1 j0(x);  ak = (j2, y)/(j2, j2);
  1. (x) += ak j2(x);  err  -= ak (j2, y);
  1. Set j0(x) = j1(x); j1(x) = j2(x);

Step 8  Output ( );  STOP.


c语言实现: #include 
    
      #include 
     
       #define MAXM 200 /* 采样点个数上限*/ #define MAXN 5 /* 拟合多项式阶数上限*/ /* 这里仅给出2个测试用例,正式裁判程序可能包含更多测试用例 */ double qi_x[MAXN+1][MAXN+1];//存储基底函数 double ak[MAXN+1];//存储拟合函数对应基地的系数 double f1(double x) { return sin(x); } double f2(double x) { return exp(x); } //用于求x的n次方 double power(double x,int n) { int i; double y=1; for(i=0;i 
      
        0;i--) temp[i]=x[i-1]; temp[0]=0; } //用于完成拟合函数和基底函数的内积 double get_function_inner_product(double (*f)(double t),double x[],double y1[],double w[],int m) { int i,j; double sum=0; double sum1; for(i=0;i 
       
         =*eps)) { k=k+1; double temp1[MAXN+1]={0}; carry_x(qi_x[k-1],temp1); m1=get_Inner_product(x,temp1,qi_x[k-1],w,m)/get_Inner_product(x,qi_x[k-1],qi_x[k-1],w,m); n=get_Inner_product(x,qi_x[k-1],qi_x[k-1],w,m)/get_Inner_product(x,qi_x[k-2],qi_x[k-2],w,m); Array_op(k,m1,n); // printf("%f\n",get_function_inner_product(f,x,qi_x[k],w,m)); ak[k]=get_function_inner_product(f,x,qi_x[k],w,m)/get_Inner_product(x,qi_x[k],qi_x[k],w,m); // printf("%f\n",ak[k]); err=err-ak[k]*get_function_inner_product(f,x,qi_x[k],w,m); } *eps=err; return k; } //输出实验结果 void print_results( int n, double c[], double eps) { /* 用于输出结果 */ int i; int m,k; for(m=0;m 
         
        
       
      
    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215056.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:48
下一篇 2026年3月18日 下午2:48


相关推荐

  • 云计算,大数据,物联网三者的区别与联系方法_物联网与云存储的关系

    云计算,大数据,物联网三者的区别与联系方法_物联网与云存储的关系

    2022年10月6日
    5
  • 科大讯飞大模型持续迭代

    科大讯飞大模型持续迭代

    2026年3月14日
    2
  • http协议详解(HTTP协议是一种什么协议)

    一、前言:我们上网很简单,只需要通过网络服务商开通端口就可以了,每天都在上网,有留意到访问网站链接有什么共同点吗?为什么需要但是为什么要讲HTTP和HTTPS呢?二、HTTP和HTTPS发展历史当我们打开谷歌浏览器输入www.12306.cn,回车很快在浏览器上就看到页面,其中的浏览器就是客户端,负责接受浏览器的是服务器,两者的通信是通过HTTP协议。什么是HTTP?…

    2022年4月18日
    53
  • 使用阿里云Ubuntu搭建代理服务器

    使用阿里云Ubuntu搭建代理服务器因为调试原因需要更改 TensorFlow 版本 但是学校网络的原因 使用 pipinstallte 1 8 nbsp 下载 TensorFlow1 8 一直不成功 突然想到有一台阿里云服务器 便想着试试搭建一个 IP 代理服务器试试 找了一些资料 最终决定使用 TinyProxy TinyProxy 安装非常简单 输入 sudoapt getupdateapt getinstall

    2026年3月18日
    3
  • 离线包方案

    离线包方案网易 资源离线 JsBridge 通信 接口预请求 网易新闻客户端 H5 秒开优化 H5 优势 跨平台 实时更新 便于传播等 劣势 功能 硬件访问能力 离线功能 性能 体验等一 资源离线 静态资源加载耗时 资源离线到本地 能很好解决 web 页面把静态资源生成 zip 包 客户端在合适的时机拉去 zip 包并解压到本地 持久化存储 用户访问的时候拦截 WebView 发出去的页面请求 直接返回对应的本地文件 前端 生成 zip 包 gt 更新

    2026年3月18日
    2
  • 深度相机种类_深度相机原理

    深度相机种类_深度相机原理本文首发于微信公众号:计算机视觉life。本文的深度相机制造商涉及:Microsoft、Intel、LeapMotion、Orbbec、图漾、OccipitalStructure、Stereolabs、DUO。文末附深度相机详细对比清单。MicrosoftKinect微软推出了两款Kinect,Kinect一代(Kinectv1)是基于结构光原理的深度相机,Kinect二代(Kine

    2025年6月23日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号