看看我的这个程序的问题.(有关插值的)
以下是我写的样条插值程序(第一边界条件),但是运行程序计算在给定插值点处的数值却不是原始给定的数值,请大家看一下,其实很简单,谢谢大家!!function sp1=spline1(x,y,xi) % X,Y是插值需要的x(i) 与f(i)的向量%
np1=length(y);
for i=1:(np1-1)
if(xi<=x(i+1)&xi>=x(i)) %如果给定的xi在[x(i) x(i+1)]分段,用带定系数法确定3次多项试%
A=; %系数矩阵%
B=;%对应AX=B中的B,即[f(x(i));f(x(i+1)); 在x(i)导数值;在x(i+1)导数值]%
C=inv(A);
a=C*B;
a=a';
sp1=polyval(a,xi); %构造3次多项式%
end
end
function y=orifunder(x0)
syms x;
t=diff(orifun(x));
x=x0;
y=eval(t);
function y=orifun(x)
y=1/(1+25*x*x); %实验时候给点的原涵数,要进行各种插直计算比较进度,避免RUNGE现象%Sample TextSample TextSample Text A=;
觉得 这个地方有问题,起码应该出现变量 原帖由 guangguang 于 2006-12-22 15:04 发表
A=;
觉得 这个地方有问题,起码应该出现变量
这里的X(I)就是根据不同的小区间而变化的. 计算在给定插值点处的数值却不是原始给定的数值?
不太明白楼主的意思啊 原帖由 lxq 于 2006-12-23 11:23 发表
计算在给定插值点处的数值却不是原始给定的数值?
不太明白楼主的意思啊
就是原来给定的插值点X(I),我调用程序计算在X(I)点的值,却不等于f(i),也就是y(i),这是已知的值啊,不等的话说明我的程序肯定是有问题的.谢谢!!
页:
[1]