mdsk.net
当前位置:首页 >> mAtlAB插值程序 >>

mAtlAB插值程序

data=[3.946 05.193 505.762 1006.311 1506.795 2007.257 2507.704 3008.170 3508.603 4009.073 4509.511 50010.001 55010.435 60010.932 65011.400 70011.938 75012.428 80012.995 85013.560 90014.246 95015.063 1000 ];v=data(:,2);i=

[MATLAB]三个点一般可以使用二次插值,方法如下:yi=interp1([1,2,3],[4,5,6],2.2,'spline') 计算结果为:yi=5.2000 另外,你取的点比较特殊,做出来其实是个一次线性插值.要知道interp1的详细功能请使用:help interp1

直接有原函数,找插值函数就可以了 yi = interp1(x,y,xi,method) 、 然后将图画出来就可以了

做了一个测试,希望有所帮助. 代码: % 用matlab编写拉格朗日插值算法的程序,并以下面给出的函数表为数据基础,% 在整个插值区间上采用拉格朗日插值法计算f(0.6),写出程序源代码,输出计算结果% x -2.15 -1.00 0.01 1.02 2.03 3.25%

x=[1,2,3,4,5];y=[1.2,2.5,4.8,10,15];a=polyfit(x,y,length(x)-1);%插值poly2sym(a)%输出插值多项式

syms t; if(length(x) == length(y)) n = length(x); else disp('x和y的维数不相等!'); return; end %检错 f = 0.0; for(i = 1:n) l = y(i); for(j = 1:i-1) l = l*(t-x(j))/(x(i)-x(j)); end; for(j = i+1:n) l = l*(t-x(j))/(x(i)-x(j)); %计算拉格朗日基函数 end; f = f + l; %计算拉格

附件中是拉格朗日插值法程序. 以下面数据为例:(运行时,也就是调用Language.m程序) x = [-2.15 -1.00 0.01 1.02 2.03 3.25]; y = [17.03 7.24 1.05 2.03 17.06 23.05 ]; x0 = 0.6; y0=Language(x,y,x0) (上面语句,在command window中输入即可) 结果: y0= 0.0201

你要的是编这命令的程序还是怎么运用这个命令啊

function f=lang(x,y,x0)syms p;n=length(x);f=0;for k=1:n l=y(k); for j=1:k-1 l=l*(p-x(j))/(x(k)-x(j)); end for j=k+1:n l=l*(p-x(j))/(x(k)-x(j)); end f=f+l; simplify(f);end if(nargin==2) f=subs(f,'p','x'); f=collect(f); f=vpa(f,4); else m=length(x0); for i=1:m temp(i)=subs(f,'p',x0(i)); end f=temp; end

如果画图的话:x=-2000:0.01:2000; y= 0.036-((x/2090.7).^(1/0.1585))-x/182000; plot(x,y) grid on 可以发现曲线与y=0有两个交点.一个在(-1500,1000)间,另一个在(1000,1500)间.但是用 syms x solve('0.036-((x/2090.7)^(1/0.1585))-x/

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com