早教吧作业答案频道 -->其他-->
三次样条函数源程序如何复制到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',把代码复制进去,最好文件名和函数名相同, 就可以调用了
看了 三次样条函数源程序如何复制到...的网友还看了以下:
吊装方法的选择原则是( )。A.安全B.有序C.先进D.快捷E.经济 2020-05-18 …
将双绞线制作成交叉线(一端按EIA/TIA 568A线序,另一端按EIA/TIA 568 B线序), 2020-05-26 …
数据的( )是数据库的主要特征之一,是数据库与文件系统的根本区别。A.简单化B.有序化C.安全性D. 2020-05-26 …
装接地线的顺序应该是()。A.先装接地端后装导体端B.先装导体端后装接地端C.先装远处后装近处D.无 2020-05-27 …
没有来由叫无端没有顺序叫()根据意思写出(无)字开头的词语.没有来由叫无端没有顺序叫()没有道理叫 2020-07-23 …
端粒是每条染色体的末端具有的一段特殊序列的DNA.端粒在不同物种细胞中对于保持染色体稳定性和细胞活性 2020-11-05 …
苹果公司为iPhone和iPad等电子终端提供的应用程序,将近80%需要付费下载。下载应用程序需要付 2020-11-28 …
三省六部制完善了自秦朝以来的中央集权制度,其积极意义在于A.解决了中央与地方官员权责不清的弊端B.有 2020-12-17 …
真核细胞的染色体,只有在两端的一段特殊碱基序列保持完整时,才能正常进行复制.这一段特殊的碱基序列叫做 2020-12-25 …
互联网逐渐成为公民参与政治生活的公共空间,与此同时,网络谣言的蔓延也对社会稳定带来不利影响。这启示我 2021-02-15 …