早教吧作业答案频道 -->其他-->
三次样条函数源程序如何复制到matlab中求解?源程序如下:(程序中:X,Y为输入结点,dY为两端点一阶导数矩阵,x0为待求插值点,m为有效数字位数.)function[]=spline3(X,Y,dY,x0,m)N=size(X,2);s0=dY(1);sN=dY(2)
题目详情
三次样条函数源程序如何复制到matlab中求解?
源程序如下:(程序中:X,Y为输入结点,dY为两端点一阶导数矩阵,x0为待求插值点,m为有效数字位数.)
function[]=spline3(X,Y,dY,x0,m)
N=size(X,2);
s0=dY(1);sN=dY(2);
interval=0.025;
disp('x0为插值点')
x0
h=zeros(1,N-1);
for i=1:N-1 h(1,i)=X(i+1)-X(i);end
d(1,1)=6*((Y(1,2)-Y(1,1))/h(1,1)-s0)/h(1,1);
d(N,1)=6*(sN-(Y(1,N)-Y(1,N-1))/h(1,N-1))/h(1,N-1);
for i=2:N-1
d(i,1)=6*((Y(1,i+1)-Y(1,i))/h(1,i)-(Y(1,i)-Y(1,i-1))
/h(1,i-1))/(h(1,i)+h(1,i-1));end
mu=zeros(1,N-1);md=zeros(1,N-1);
md(1,N-1)=1;mu(1,1)=1;
for i=1:N-2
u=h(1,i+1)/(h(1,i)+h(1,i+1));mu(1,i+1)=u;
md(1,i)=1-u;end
p(1,1)=2;q(1,1)=mu(1,1)/2;
for i=2:N-1
p(1,i)=2-md(1,i-1)*q(1,i-1);q(1,i)=mu(1,i)/p(1,i);end
p(1,N)=2-md(1,N-1)*q(1,N-1);
y=zeros(1,N);y(1,1)=d(1)/2;
for i=2:N y(1,i)=(d(i)-md(1,i-1)*y(1,i-1))/p(1,i);end
x=zeros(1,N);x(1,N)=y(1,N);
for i=N-1:-1:1 x(1,i)=y(1,i)-q(1,i)*x(1,i+1);end
fprintf('M为三对角方程的解\n');M=x;
fprintf('\n');
syms t;
digits(m);
for i=1:N-1
pp(i)=M(i)*(X(i+1)-t)^3/(6*h(i))+M(i+1)*(t-X(i))^3
/(6*h(i))+(Y(i)-M(i)*h(i)^2/6)*(X(i+1)-t)/h(i)+
(Y(i+1)-M(i+1)*h(i)^2/6)*(t-X(i))/h(i);
pp(i)=simplify(pp(i));coeff=sym2poly(pp(i));
if length(coeff)~=4
tt=coeff(1:3);coeff(1:4)=0;coeff(2:4)=tt;end
if x0>X(i)&x0
源程序如下:(程序中:X,Y为输入结点,dY为两端点一阶导数矩阵,x0为待求插值点,m为有效数字位数.)
function[]=spline3(X,Y,dY,x0,m)
N=size(X,2);
s0=dY(1);sN=dY(2);
interval=0.025;
disp('x0为插值点')
x0
h=zeros(1,N-1);
for i=1:N-1 h(1,i)=X(i+1)-X(i);end
d(1,1)=6*((Y(1,2)-Y(1,1))/h(1,1)-s0)/h(1,1);
d(N,1)=6*(sN-(Y(1,N)-Y(1,N-1))/h(1,N-1))/h(1,N-1);
for i=2:N-1
d(i,1)=6*((Y(1,i+1)-Y(1,i))/h(1,i)-(Y(1,i)-Y(1,i-1))
/h(1,i-1))/(h(1,i)+h(1,i-1));end
mu=zeros(1,N-1);md=zeros(1,N-1);
md(1,N-1)=1;mu(1,1)=1;
for i=1:N-2
u=h(1,i+1)/(h(1,i)+h(1,i+1));mu(1,i+1)=u;
md(1,i)=1-u;end
p(1,1)=2;q(1,1)=mu(1,1)/2;
for i=2:N-1
p(1,i)=2-md(1,i-1)*q(1,i-1);q(1,i)=mu(1,i)/p(1,i);end
p(1,N)=2-md(1,N-1)*q(1,N-1);
y=zeros(1,N);y(1,1)=d(1)/2;
for i=2:N y(1,i)=(d(i)-md(1,i-1)*y(1,i-1))/p(1,i);end
x=zeros(1,N);x(1,N)=y(1,N);
for i=N-1:-1:1 x(1,i)=y(1,i)-q(1,i)*x(1,i+1);end
fprintf('M为三对角方程的解\n');M=x;
fprintf('\n');
syms t;
digits(m);
for i=1:N-1
pp(i)=M(i)*(X(i+1)-t)^3/(6*h(i))+M(i+1)*(t-X(i))^3
/(6*h(i))+(Y(i)-M(i)*h(i)^2/6)*(X(i+1)-t)/h(i)+
(Y(i+1)-M(i+1)*h(i)^2/6)*(t-X(i))/h(i);
pp(i)=simplify(pp(i));coeff=sym2poly(pp(i));
if length(coeff)~=4
tt=coeff(1:3);coeff(1:4)=0;coeff(2:4)=tt;end
if x0>X(i)&x0
▼优质解答
答案和解析
直接调用肯定不行的,你要新建一个脚本,'script',把代码复制进去,最好文件名和函数名相同, 就可以调用了
看了 三次样条函数源程序如何复制到...的网友还看了以下:
1.观察一串数3,5,7,9,…,第n个数字可表示为()A.2(n-1)B.2n-1C.2(n+1 2020-06-04 …
设X1,X2,…,Xn(n≥2)为来自总体N(0,1)的简单随机样本,.X为样本均值,S2为样本方 2020-06-10 …
设X1,…,Xn是取自正态总体N(0,1)一个简单随机样本,则下列结论中错误的是()A.n.X~N 2020-07-01 …
设总体X方差σ2有限且不为0,X1,X2,…,Xm+n(n>m)为取自X的样本容量为m+n的样本. 2020-08-02 …
总体的均值为24,标准差为16.从该总体中抽取一个容量为64的随机样本,则该样本均值的抽样分布为A 2020-08-03 …
公式难题,abcdefgn分别为不等的数值.a+b+n=?a+c+n=?a+d+n=?……………… 2020-08-04 …
下列各项中读音错误的一项是:()A.闷热mēn愤懑mèn分娩miǎn酩酊dǐngB.荒谬mìù脉脉m 2020-11-04 …
下列各项中读音错误的一项是:()A.闷热mēn愤懑mèn分娩miǎn酩酊dǐngB.荒谬mìù脉脉m 2020-11-04 …
下列词语中字的注音全对的一组是A.缠(chán)绞吮(shǔn)吸奔(bēn)着吆(yāo)喝B.凫 2020-11-10 …
在记忆方面,情绪高涨的学生,远比情绪低落的学生要好得多。究其原因,在于A.智力不同,效果不一样B.意 2021-01-08 …