腐蚀电化学极化曲线拟合程序

  • 格式:doc
  • 大小:80.50 KB
  • 文档页数:4

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

曲线拟合及其MATLAB 程序

实验任务:用最小二乘法将一组离散数据进行曲线拟合,并用MATLAB 做出曲线。

实验要求:

第三次作业的最后一题求函数关系并作出曲线,此组x 和y 的实验数据如下表所示。 x i

1 2 3 4 5 6 7 8 9 10 y i 6.00 3.50 2.67 2.75 2.00 1.80 1.70 1.63 1.56 1.50

实验内容:

(1)在在MATLAB 工作窗口输入程序

>> x=[1 2 3 4 5 6 7 8 9 10];

y=[6.00 3.50 2.67 2.75 2.00 1.80 1.70 1.63 1.56 1.50];

plot(x,y,'r*'),

legend('实验数据(xi,yi)')

xlabel('x'), ylabel('y'),

title('实验数据点(xi,yi)的散点图')

(2)运行后屏幕显示数据的散点图(略)。

(3)编写下列MATLAB 程序计算)(x f 在),(i i y x 处的函数值,即输入程序 >> syms a1 a2 a3 a4;

x=[1 2 3 4 5 6 7 8 9 10];

fi=a1.*x.^3+ a2.*x.^2+ a3.*x+ a4

运行后屏幕显示关于a1, a2, a3和a4的线性方程组

fi =

[a1+a2+a3+a4, 8*a1+4*a2+2*a3+a4, 27*a1+9*a2+3*a3+a4, 64*a1+16*a2+4*a3+a4, 125*a1+25*a2+5*a3+a4,

216*a1+36*a2+6*a3+a4, 343*a1+49*a2+7*a3+a4,

512*a1+64*a2+8*a3+a4, 729*a1+81*a2+9*a3+a4,

1000*a1+100*a2+10*a3+a4]

编写构造误差平方和的MATLAB 程序

>> y=[6.00 3.50 2.67 2.75 2.00 1.80 1.70 1.63 1.56 1.50];

fi

=[a1+a2+a3+a4,8*a1+4*a2+2*a3+a4,27*a1+9*a2+3*a3+a4,64*a1+16*a2+4*a3+a4,125*a1+25*a2+5*a3+a4,216*a1+36*a2+6*a3+a4,343*a1+49*a2+7*a3+a4,512*a1+64*a2+8*a3+a4,729*a1+81*a2+9*a3+a4, 1000*a1+100*a2+10*a3+a4]; fy=fi-y; fy2=fy.^2;J=sum(fy.^2)

运行后屏幕显示误差平方和如下

J =

(a1+a2+a3+a4-6)^2+(8*a1+4*a2+2*a3+a4-7/2)^2+(27*a1+9*a2+3*a3+a4-267/100)^2+(64*a1+16*a2+4*a3+a4-11/4)^2+(125*a1+25*a2+5*a3+a4-2)^2+(216*a 1+36*a2+6*a3+a4-9/5)^2+(343*a1+49*a2+7*a3+a4-17/10)^2+(512*a1+64*a2+8*a3+a4-163/100)^2+(729*a1+81*a2+9*a3+a4-39/25)^2+(1000*a1+100*a2+10*a3+a4-3/2)^2

为求4321,,,a a a a 使J 达到最小,只需利用极值的必要条件0

=??k a J 。)4,3,2,1(=k ,得到关于4321,,,a a a a 的线性方程组,这可以由下面的MATLAB 程序完成,即输入程序

>> syms a1 a2 a3 a4

J=(a1+a2+a3+a4-6)^2+(8*a1+4*a2+2*a3+a4-7/2)^2+(27*a1+9*a2+3*a3+a4

-267/100)^2+(64*a1+16*a2+4*a3+a4-11/4)^2+(125*a1+25*a2+5*a3+a4-2)^2+( 216*a1+36*a2+6*a3+a4-9/5)^2+(343*a1+49*a2+7*a3+a4-17/10)^2+(512*a1+6 4*a2+8*a3+a4-163/100)^2+(729*a1+81*a2+9*a3+a4-39/25)^2+(1000*a1+100* a2+10*a3+a4-3/2)^2;

Ja1=diff(J,a1); Ja2=diff(J,a2); Ja3=diff(J,a3); Ja4=diff(J,a4);

Ja11=simple(Ja1), Ja21=simple(Ja2), Ja31=simple(Ja3), Ja41=simple(Ja4),

运行后屏幕显示J分别对a1, a2 ,a3 ,a4的偏导数如下

Ja11 =6050*a4+3956810*a1+441650*a2+50666*a3-497579/50

Ja21 =770*a4+441650*a1+50666*a2+6050*a3-66681/50

Ja31 =110*a4+50666*a1+6050*a2+770*a3-10679/50

Ja41 = 20*a4+6050*a1+770*a2+110*a3-2511/50

解线性方程组Ja11 =0,Ja21 =0,Ja31 =0,Ja41 =0,输入下列程序

>>A=[3956810, 441650, 50666, 6050; 441650, 50666, 6050, 770; 50666, 6050, 770, 110; 6050, 770, 110, 20];

B=[497579/50, 66681/50, 10679/50, 2511/50];

C=B/A, f=poly2sym(C)

运行后屏幕显示拟合函数f及其系数C如下

C = -0.0176 0.3744 -2.6452 7.9627

f=-5066427105276917/288230376151711744*x^3+6744376644764349/1801439 8509481984*x^2-2978180218619021/1125899906842624*x+112064********* 3/140737488355328

故所求的拟合曲线为

f(x)= -0.0176 x3 + 0.3744 x2 -2.6452 x+ 7.9627 .

(4)编写下面的MATLAB程序估计其误差,并作出拟合曲线和数据的图形,输入程序

>> xi =[1 2 3 4 5 6 7 8 9 10];

y=[6.00 3.50 2.67 2.75 2.00 1.80 1.70 1.63 1.56 1.50];

n=length(xi);

f= -0.0176.*xi.^3+0.3744.*xi.^2-2.6452.*xi +7.9627;

x=1: 1: 10;

F= -0.0176.*xi.^3+0.3744.*xi.^2 -2.6452.*xi +7.9627; fy=abs(f-y); fy2=fy.^2; Ew=max(fy),

E1=sum(fy)/n, E2=sqrt((sum(fy2))/n)

plot(xi,y,'r*'), hold on, plot(x,F,'b-'), hold off legend('数据点(xi,yi)','拟合曲线y=f(x)'), xlabel('x'), ylabel('y'),

title('实验数据点(xi,yi)和拟合曲线y=f(x)的图形') 运行后屏幕显示数据),(i i y x 与拟合函数f 的最大误差Ew ,平均误差E1和均方根误差E2及其数据点),(i i y x 和拟合曲线y=f(x)的图形如下所示。 Ew = 0.5291

E1 = 0.2163

E2 = 0.2763