求救编程高手,用matlab仿真直线插补的程序

求救编程高手,用matlab仿真直线插补的程序,第1张

%逐点比较法直线插补

%==========================================================================

F=0 %偏差函数

xs=0 %X起始坐标

ys=0 %Y起始坐标

xe=5 %X终点坐标

ye=6 %Y终点坐标

xo=xs %插补前X坐标

yo=ys %插补前Y坐标

xn=xs %插补后X坐标

yn=ys %插补后Y坐标

dx=1 %X脉冲当量

dy=1 %Y脉冲当量

TT=1 %插补周期

%==========================================================================

n=abs(xe-xs)+abs(ye-ys) %插补次数

plot([xs xe*dx],[ys ye*dy],'r-')hold ongrid on

%==========================================================================

while(n>0)

if(F>=0)

xn=xo+dx

yn=yo

plot([xo xn],[yo yn],'b-')hold ongrid on

xo=xnyo=yn

F=F-ye

else

yn=yo+dy

xn=xo

plot([xo xn],[yo yn],'b-')hold ongrid on

xo=xnyo=yn

F=F+xe

end

pause(TT)

n=n-1

end

你的x y数据不对应 不能插

假设按照前面对应

x=1:2:100y=25:3.5:1000

y0=spline(x,y(1:length(x)),2.5)

y0 =

27.6250

yi = interp1(x,y,xi,method)

已知样本点坐标x,y,求xi处的函数值yi,插值方法是method。

function [输出变量] = 函数名称(输入变量)

% 注释

% 函数体

如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:

function [s]  = eg_sum( n )

% calculate the sum of 1..n

s = 0

for i = 1:n

s = s + i

end

回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数,如下所示:

>>clear

>>a = eg_sum(10)

运行结果: a = 55

扩展资料:

对于函数f(x),常常不仅知道它在一些点的函数值,而且还知道它在这些点的导数值。这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数在这些点也等于f(x)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。

从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近要求。

参考资料来源:百度百科-插值


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11071231.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存