Matlab程序,请问错误在哪?function s=lag(x,y,t) %采用符号推导,这样可以给出插值具体公式 syms p; %读取x向量维数 n=length(x); s=0; for(k=1:n) la=y(k); %构造基函数 for(j=1:k-
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 10:11:57
![Matlab程序,请问错误在哪?function s=lag(x,y,t) %采用符号推导,这样可以给出插值具体公式 syms p; %读取x向量维数 n=length(x); s=0; for(k=1:n) la=y(k); %构造基函数 for(j=1:k-](/uploads/image/z/3166076-20-6.jpg?t=Matlab%E7%A8%8B%E5%BA%8F%2C%E8%AF%B7%E9%97%AE%E9%94%99%E8%AF%AF%E5%9C%A8%E5%93%AA%3Ffunction+s%3Dlag%28x%2Cy%2Ct%29+%25%E9%87%87%E7%94%A8%E7%AC%A6%E5%8F%B7%E6%8E%A8%E5%AF%BC%2C%E8%BF%99%E6%A0%B7%E5%8F%AF%E4%BB%A5%E7%BB%99%E5%87%BA%E6%8F%92%E5%80%BC%E5%85%B7%E4%BD%93%E5%85%AC%E5%BC%8F+syms+p%3B+%25%E8%AF%BB%E5%8F%96x%E5%90%91%E9%87%8F%E7%BB%B4%E6%95%B0+n%3Dlength%28x%29%3B+++++++++++++++++++++++++++++++++++s%3D0%3B+for%28k%3D1%3An%29++++++la%3Dy%28k%29%3B++%25%E6%9E%84%E9%80%A0%E5%9F%BA%E5%87%BD%E6%95%B0++++++for%28j%3D1%3Ak-)
Matlab程序,请问错误在哪?function s=lag(x,y,t) %采用符号推导,这样可以给出插值具体公式 syms p; %读取x向量维数 n=length(x); s=0; for(k=1:n) la=y(k); %构造基函数 for(j=1:k-
Matlab程序,请问错误在哪?
function s=lag(x,y,t)
%采用符号推导,这样可以给出插值具体公式
syms p;
%读取x向量维数
n=length(x);
s=0;
for(k=1:n)
la=y(k);
%构造基函数
for(j=1:k-1)
la=la*(p-x(j))/(x(k)-x(j));
end;
for(j=k+1:n)
la=la*(p-x(j))/(x(k)-x(j));
end;
s=s+la;
simplify(s);
end
%对输入参数个数做判断,如果只有两个参数
%直接给出插值多项式
%如果三个参数 则给出插值点的插值结果
%第三个参数可以为向量
if(nargin==2)
s=subs(s,'p','x');
%展开多项式
s=collect(s);
%把系数取到6位精度表达
s=vpa(s,4);
else
%读取t长度
m=length(t);
%分别对t的每一个分量插值
for i=1:m
temp(i)=subs(s,'p',t(i));
end
%得到的是系列插值点的插值结果
%既得到的是向量,赋值给s
s=temp;
end
Matlab程序,请问错误在哪?function s=lag(x,y,t) %采用符号推导,这样可以给出插值具体公式 syms p; %读取x向量维数 n=length(x); s=0; for(k=1:n) la=y(k); %构造基函数 for(j=1:k-
经检验该程序可运行,
例如:
>> x = 1:10;
>> y = rand(1,10);
>> lag(x,y)
ans =
159.1-.2114e-3*x^9+.1064e-1*x^8-.2291*x^7+2.757*x^6-20.32*x^5+94.42*x^4-274.1*x^3+473.7*x^2-435.1*x