1樓:匿名使用者
給你2個作參考:
第一個:
//最小二乘法曲線擬合
typedef carraycdoublearray;
bool calculatecurveparameter(cdoublearray *x,cdoublearray *y,long m,long n,cdoublearray *a)
s[0]=-p*t[0]-q*b[0];
d2=0;
c=0;
g=0;
for(i=0;i=0;k--)
q=q*((*x)[i]-z)+s[k];
d2=d2+q*q;
c=(*y)[i]*q+c;
g=((*x)[i]-z)*q*q+g;
} c=c/d2;
p=g/d2;
q=d2/d1;
d1=d2;
(*a)[j]=c*s[j];
t[j]=s[j];
for(k=j-1;k>=0;k--) }
return true;
}第二個(這個比較全面)
#ifndef z_min2mul_h_
#define z_min2mul_h_
//defination
#include "stdlib.h"
#include "memory.h"
typedef void (* min2mul_fun)(long percent/* 當前任務完成的百分比*/);
class cmin2mul
cmin2mul()
//destruction
virtual ~cmin2mul()
private:
long m_m;
long m_n;
double* m_a,*m_b,*m_x,*m_normal/*法方程矩陣*/,*m_bnormal;
double m_error;
long m_iternum;
double * m_temp;
//min2mul_fun m_callback;
//opration
public:
void seta(long i,long j,double dvalue)
void setb(long i,double dvalue)
double getx(long i)
double* getxp()
void seterror(double error)
double geterror()
long getiternum()
void setab(long m,long n,double*a,double*b)
//解求 ax=b
long doaxb()
//解求 ax=b的最小二乘解
long domin2mul()
//construct normal metrix
//m_normal[i,j]=at[i,k]*a[k,j]=a[k,i]*a[k,j]
for(i=0;i*(m_normal+i*m_n+j)=t;
}}// bnormal[i]=at[i,k]*b[k]=a[k,i]*b[k]
for(i=0;i*(m_bnormal+i)=t;
}seidel(m_normal,m_x,m_bnormal);
free(m_normal);
free(m_bnormal);
m_bnormal=null;
m_normal=null;
return 1;
}//output
/* void print()
*/private:
void seidel(double *a,double*x,double*b)
else
}*(b+i)/=*(a+i*m_n+i);
*(a+i*m_n+i)=0.0;
}//do*(x+i)=t+*(b+i);
}++m_iternum;
}while(needmore(x));
}bool needmore(double* x)
return false;
}long allocallmemory()
void freeallmemory()
};#endif
2樓:魔高丈
以前寫過一個類似的軟體,你要嗎?
也不留個聯 系方法
呵呵,發給你了!
vc 最小二乘法曲線擬合,如何繪製出曲線?
看你的資料,50那個點可能測量不準如果用二次擬合是y 2305一次擬合是y 誤差自己算一下吧不好意思,有急事。開啟excel,先將來資料繪成線性圖,源然後在圖表中新增bai趨勢線,然後勾選du 顯zhi示公式,就可以dao擬合出資料的公式了。最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小...
怎樣使用excel計算最小二乘法
擊掌慶賀 設yi a bxi 將已知yi,xi列於excel表a,b列中例如yi位於a1 a10,xi位於b1 b10則可利用函式計算 斜率 slope a1 a10,b1 b10 截距 intercept a1 a10,b1 b10 怎樣用excel進行多元最小二乘法的計算? 1 將方程組輸入ex...
matlab用最小二乘法求一形如y t at b (a和b為待定係數)的多項式,使之與下列資料相擬合
宇逸 1.使用非線性最小二乘擬合函式lsqcurvefit擬合t 1 2 3 4 5 6 7 8 y 4.00 6.40 8.00 8.80 9.22 9.50 9.70 9.68 fun b,x x.b 1 x b 2 x0 0.1 0.1 b lsqcurvefit fun,x0,t,y 結果為...