zholv 发表于 2006-12-21 22:05

看看我的这个程序的问题.(有关插值的)

以下是我写的样条插值程序(第一边界条件),但是运行程序计算在给定插值点处的数值却不是原始给定的数值,请大家看一下,其实很简单,谢谢大家!!



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

guangguang 发表于 2006-12-22 15:04

A=; 
觉得 这个地方有问题,起码应该出现变量

zholv 发表于 2006-12-22 15:23

原帖由 guangguang 于 2006-12-22 15:04 发表
A=; 
觉得 这个地方有问题,起码应该出现变量


这里的X(I)就是根据不同的小区间而变化的.

lxq 发表于 2006-12-23 11:23

计算在给定插值点处的数值却不是原始给定的数值?

不太明白楼主的意思啊

zholv 发表于 2006-12-23 12:16

原帖由 lxq 于 2006-12-23 11:23 发表
计算在给定插值点处的数值却不是原始给定的数值?

不太明白楼主的意思啊


就是原来给定的插值点X(I),我调用程序计算在X(I)点的值,却不等于f(i),也就是y(i),这是已知的值啊,不等的话说明我的程序肯定是有问题的.谢谢!!
页: [1]
查看完整版本: 看看我的这个程序的问题.(有关插值的)