在一丘陵地带测量高程,x和 y方向每隔100米测一个点,得高程如下表,试
插值一曲面,确定合适的模型,并由此找出最高点和该点的高程。
x
y 100 200 300 400 500
100 636 697 624 478 450
200 698 712 630 478 420
300 680 674 598 412 400
-113-
400 662 626 552 334 310
解 编写程序如下:
clear,clc
x=100:100:500
y=100:100:400
z=[636 697 624 478 450
698 712 630 478 420
680 674 598 412 400
662 626 552 334 310]
pp=csape({x,y},z')
xi=100:10:500yi=100:10:400
cz1=fnval(pp,{xi,yi})
cz2=interp2(x,y,z,xi,yi','spline')
[i,j]=find(cz1==max(max(cz1)))
x=xi(i),y=yi(j),zmax=cz1(i,j)
在某海域测得一些点(x,y)处的水深 z 由下表给出,在矩形区域(75,200)
×(-50,150) 内画出海底曲面的图形。
x 129 140 103.5 88 185.5 195 105 157.5 107.5 77 81 162 162 117.5
y 7.5 141.5 23 147 22.5 137.5 85.5 –6.5 -81 3 56.5 –66.5 84 -33.5
z 4 8 6 8 6 8 8 9 9 8 8 9 4 9
解 编写程序如下:
x=[129 140 103.5 88 185.5 195 105 157.5 107.5 77 81 162 162
117.5]
y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84
-33.5]
z=-[4 8 6 8 6 8 8 9 9 8 8 9 4
9]
xi=75:1:200
yi=-50:1:150
zi=griddata(x,y,z,xi,yi','cubic')
subplot(1,2,1)
plot(x,y,'*')
subplot(1,2,2)
mesh(xi,yi,zi) 希望对你有帮助,这是插值
某乡镇企业 1990-1996 年的生产利润如下表:
年份 1990 1991 1992 1993 1994 1995 1996
利润(万元) 70 122 144 152 174 196 202
试预测 1997年和 1998 年的利润。
解 作已知数据的的散点图,
-1
x0=[1990 1991 1992 1993 1994 1995 1996]
y0=[70 122 144 152 174 196 202]
plot(x0,y0,'*')
发现该乡镇企业的年生产利润几乎直线上升。
因此,我们可以用 y =a x+a 作为
1 0
拟合函数来预测该乡镇企业未来的年利润。
编写程序如下:
x0=[1990 1991 1992 1993 1994 1995 1996]
y0=[70 122 144 152 174 196 202]
a=polyfit(x0,y0,1)
y97=polyval(a,1997)
y98=polyval(a,1998)
只有5个点似乎少了点。。你要拟合个什么曲面?线性的好说,但是非线性的函数太多了,必须先给一个大致形式然后可以去求参数。而且,你上面的程序不是拟合,是插值。你可以试试'v4'以外的几种插值方法。
如:2.xls里的工作表数据格式为,A单元格为x值,B单元格为y值,C单元格为z值,则A=xlsread('2.xls') %读数据
x=A(:,1)
y=A(:,2)
z=A(:,3)
X=(x,y)
func=inline('a(1).*X(:,1).^2+a(2).*X(:,2).^2+a(3)','a','X') %自定义函数
a0=[a10 a20 a30] %函数系数的初值,为具体的数值
[a,r,J] = nlinfit(x,y,func,a0)
%方程z=a*x²+b*y²+c
c=a(3),b=a(2),a=a(1) %函数的系数值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)