资源描述:
《vc最小二乘法求解方程数多于未知变量线性方程组》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、c语言实现,用最小二乘法求解方程数多于未知变量的线性方程组的最适解(即矛盾方程组)收藏一、代码:/****************************************************************************ArgMin.h*Author*FriAug517:18:472005*Copyright2005*Email****************************************************************************/#include"stdio.h"#include"math.h"/*Interfac
2、e*///solvethelinearequationsusing"argmin"methodintArgMin(double*inMtrx,intCOLUMN,introwNum,intcolNum,double*solution);//SolveaseriesoflinearequationsintSolveLinearEqts(double*inMtrx,intCOLUMN,introwNum,intcolNum,double*solution);//EliminationofunknownsintReduceUnknowns(double*mtrx_tmp,intCOLUMN,intr
3、owNo,intcolNo,introwNum,intcolNum);/*BeginCoding*///ArgMinusing"solvelineareqts".intArgMin(double*mtrx_tmp,intCOLUMN,introwNum,intcolNum,double*solution){intk,l,j;double*eqt;int*q;q=&colNum;eqt=(double*)malloc(colNum*colNum*sizeof(double));//printf("%d",*q);for(k=0;k<*q-1;k++)for(l=0;l<*q-1;l++){eqt
4、[k*COLUMN+l]=0;for(j=0;j5、1;m++){for(n=0;n<*q;n++)printf("%.2lft",eqt[m*COLUMN+n]);printf("");}*/if(!SolveLinearEqts(eqt,COLUMN,(*q-1),*q,solution)){return0;}return1;}//SolvethesolutionofaseriesoflinearequationsintSolveLinearEqts(double*inMtrx,intCOLUMN,introwNum,intcolNum,double*solution){inti,j;doubletmpSum;if(rowNum!=(
6、colNum-1)){printf("Can'tsolvetheequationsbecauseequationnumber");printf("isnotthesameasunknowparameters!");return0;}//reduceunknownparametersfor(i=0;i7、ttingadifferent"theta"valueor");printf("checkingthedataintroducedtofunction"CalculateCoeff"!)");return0;}}//Calculatetheequationatthebottomtoacquirevalueofthefirst//variable,thenSubstitutethesol