2022-11-21 13:49来源:m.sf1369.com作者:宇宇
1. 调用格式:
a. p=polyfit(x,y,n)
b. [p,S] = polyfit(x,y,n)
c. [p,S,mu]=polyfit(x,y,n)
2. 参数意义
x : 源数据点对应的横坐标,可为行向量、矩阵
y : 源数据点对应的纵坐标,可为行向量、矩阵
n : 要拟合的阶数,k阶拟合需要确定k+1个未知参数,故而至少需要k+1对点(x,y)。
p : 拟合多项式 的系数(共n+1个)
S : S是一个结构体数组(struct),用来估计预测误差,包含了R,df和normr。
R:polyfit函数中,先根据输入的x构建范德蒙矩阵V,然后进行QR分解,得到的上三角矩阵(系数矩阵的QR分解的上三角阵)。
df:自由度, df=length(y)-(n+1)。df>0时,为超定方程组的求解,即拟合点数比未知数(p(1)~p(n+1))多。
normr:[ 拟合误差平方和的算术平方根=sqrt(sum((ya-yb).^2)) ] 、标准偏差、残差范数,normr=norm(y-V*p),此处的p为求解之后的数值。残差是多大的数才算拟合效果好其实并不能确定。只有相关系数(-1,1)才能确定拟合的好坏,越接近1(或-1),表示拟合的效果较好,一般来说在0.95以上可以认为基本拟合。
三个函数复合成的函数是复合函数。例如f(x)=1/√x^2+2这种,可以把它看成1/根号下g(x)。x^2+2没有条件,根号是大于等于0,分母不等于0,所以它的定义域就是刚才那个,值域根据上面定义域求。
复合函数,是按一定次序把有限个函数合成得到的函数,对两个函数f:A关于函数的复合运算→B,g:B→C,由h(x)=g(f(x))(x∈A)确定的函数h称为f与g的复合函数,记为g·f。这样,g·f是A到C的函数,(g·f)(x)=g(f(x)),它的值域是g(f(A)),记号“·”表示两个函数的复合,它是二元运算.这个运算不满足交换律,即一般来说g·f≠f·g,但它满足结合律:对f:A→B,g:B→C,h:C→D,有h·(g·f)=(h·g)·f,于是可以定义h·g·f=h·(g·f)=(h·g)·f。
逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它就是通过拟合一个逻辑函数(logit fuction)来预测一个事件发生的概率。所以它预测的是一个概率值,自然,它的输出值应该在0到1之间。
假设你的一个朋友让你回答一道题。可能的结果只有两种:你答对了或没有答对。为了研究你最擅长的题目领域,你做了各种领域的题目。那么这个研究的结果可能是这样的:如果是一道十年级的三角函数题,你有70%的可能性能解出它。但如果是一道五年级的历史题,你会的概率可能只有30%。逻辑回归就是给你这样的概率结果。
逻辑回归的原理
Logistic Regression和Linear Regression的原理是相似的,可以简单的描述为这样的过程:
(1)找一个合适的预测函数(Andrew Ng的公开课中称为hypothesis),一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程时非常关键的,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。
(2)构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值与实际类别的偏差。
(3)显然,J(θ)函数的值越小表示预测函数越准确(即h函数越准确),所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。
方法一:多项式拟合polyfit
1 x=[1 2 3 4 5 6 7 8 9];
2
3 y=[9 7 6 3 -1 2 5 7 20];
4 P= polyfit(x, y, 3) %三阶多项式拟合
5
6 xi=0:.2:10;
7
8 yi= polyval(P, xi); %求对应y值
9
10 plot(xi,yi,x,y,'r*');
运行结果:
多项式系数:P =0.1481 -1.4030 1.8537 8.2698
使用matlab中的ploy2sym函数:y=poly2sym(P)
得到y=0.1481 * x^3 + -1.4030 * x^2 +1.8537 * x + 8.2698
方法二:工具箱拟合cftool
1 x=[1 2 3 4 5 6 7 8 9];
2 y=[9 7 6 3 -1 2 5 7 20];
3
4
5 cftool(x,y)
运行结果:
拟合类型中我们选择polynominal(多项式),拟合阶数选择3,运行结果中可见R平方值高达0.94,属于比较准确的.
三角函数法拟合能够直观方便的拟合出残差序列中的周期规律,有助于深入研究引起残差周期规律的各种地球物理机制。
你可以利用excel画拟合图:
画拟合图步骤1:首先,新建并打开一个excel表格,将自己需要建立曲线的数据输入进去
画拟合图步骤2:然后,在“插入”中选择“折线图”中的“所有图表类型”
画拟合图步骤3:在图表中选择“X Y散点图”中的“散点图”
画拟合图步骤4:在出现的图表中选择其中一点,右击并选择添加趋势线
画拟合图步骤5:在出现的的“设置趋势线格式”界面中,选择自己需要的趋势线类型,比如“线性”,设置自定义趋势线名称,勾选“显示公式”和“显示R平方值”选项,完成之后点击“关闭”
画拟合图步骤6:可以得到趋势线及方程,并可以对图表坐标轴等格式进行更改,以符合自己的要求
答:步骤如下
1.在有样本数据的Excel文件中,鼠标选样本数据。2.点击“插入”,找到 “查看所有图表”图标并点击打开,接着找到“加号”图标并点击。3.依次点击“趋势线”、“更多选项”、“线性”、“显示公式”和“显示R平方值”。
数据画图后点非线性拟合,找到幂函数或自定义,确定。
根据已知的高程点,A.B.C.D.E.F...把每三个能连上成为三角形的三个高程点相连上。
然后通过数学的方法确定三角形的每一边是否有等高线通过,如果有等高线通过,可以通过 X=X1+(X2-X1)/(Z2-Z1)*(Z-Z1), Y=Y1+(Y2-Y1)/(Z2-Z1)*(Z-Z1). 式中(X1.Y1.Z1)和(X2.Y2.Z2)为三角形边的两个端点的三维坐标,所求的是(X.Y.Z),Z的值取决于自己或者要求的等高线的高程 这样由两个式子组成的方程组就可以解出高程点坐标。把每个代入相同Z值得出的X和Y的值,因此每个这样的(X.Y.Z)坐标相连所的的图形就是没有拟合的等高线图,最后选用多线段采用样条处理进行光滑处理就能得到想要的等高线图了。此外也有其他软件更能高效的绘出来。
在matlab编程中,函数拟合用fit工具即可,二次,三次拟合都可以。