MATLAB代做  | MATLAB代写  | MATLAB有偿编程
首 页
当前位置:MATLAB代做|MATLAB代写|MATLAB有偿编程matlab源码算法设计
自然边界条件的样条插值函数的Matlab程序        [↓跳到下载地址]
官方主页:源码共享网站:www.buycode.cn

联系方式:客服QQ:1747812398 买代码源码软件站,欢迎咨询

运行环境:Win9X/2000/XP/2003/

源码语言:简体中文

源码类型:源码程序 - 算法设计

推荐星级:

更新时间:2016-07-21 20:40:56

源码简介

function varargout=zl(varargin)
clear,clc
xx=0:0.1:10;
x=0:10;
y=[0 0.79 1.53 2.19 2.71 3.03 3.27 2.89 3.06 3.19 3.29];
fd=[0 0];
n=length(xx);
yx0=xx;
for i=1:n
    yx0(i)=splineL(x,y,fd,xx(i));
end
plot(x,y,'o',xx,yx0,'r')
function yx0=splineL(x,y,fd,x0)
n=length(x)-1;
f=x;
h=x;
m=x;
for i=1:n
    h(i)=x(i+1)-x(i);
    f(i)=(y(i+1)-y(i))/h(i);
end
B=2*ones(1,n+1);
fl=B;
A=B;
C=B;
g=A;
C(1)=0;
fl(1)=2*fd(1);
fl(n+1)=2*fd(2);
A(n+1)=0;
for i=2:n
    A(i)=h(i-1)/(h(i-1)+h(i));
    C(i)=1-A(i);
    fl(i)=6*((y(i+1)-y(i))/h(i)-(y(i)-y(i-1))/h(i-1))/(h(i-1)+h(i));
end
m=zgf(A,B,C,fl)
yzl=find(x>=x0);
kl=yzl(1);
if kl==1
    hk=x(kl+1)-x(kl);
    yx0=m(kl)*(x(kl+1)-x0)^3/6/hk+m(kl+1)*(x0-x(kl))^3/6/hk...
        +(y(kl)-m(kl)*hk^2/6)*(x(kl+1)-x0)/hk...
        +(y(kl+1)-m(kl+1)*hk^2/6)*(x0-x(kl))/hk;
else
    hk=x(kl)-x(kl-1);
    yx0=m(kl-1)*(x(kl)-x0)^3/6/hk+m(kl)*(x0-x(kl-1))^3/6/hk...
        +(y(kl-1)-m(kl-1)*hk^2/6)*(x(kl)-x0)/hk...
        +(y(kl)-m(kl)*hk^2/6)*(x0-x(kl-1))/hk;
end
function x=zgf(A,B,C,f)
n=length(B);
B1=zeros(1,n-1);
Y=zeros(1,n);
x1=zeros(1,n);
B1(1)=C(1)/B(1);
for i=2:n-1
    B1(i)=C(i)/(B(i)-A(i)*B1(i-1));
end
Y(1)=f(1)/B(1);
for i=2:n
    Y(i)=(f(i)-A(i)*Y(i-1))/(B(i)-A(i)*B1(i-1));
end
x1(n)=Y(n);
for i=n-1:-1:1
    x1(i)=Y(i)-B1(i)*x1(i+1);
end
x=x1;
另有第一类型的边界条件,我们同样给出Matlab程序:
function varargout=zl(varargin)
clear,clc
xx=0:0.1:10;
x=0:10;
y=[0 0.79 1.53 2.19 2.71 3.03 3.27 2.89 3.06 3.19 3.29];
fd=[0.8 0.2];
n=length(xx);
yx0=xx;
for i=1:n
    yx0(i)=splineL(x,y,fd,xx(i));
end
plot(x,y,'o',xx,yx0,'r')

function yx0=splineL(x,y,fd,x0)
%x=x0 x1 xn
%y=y0 y1 yn
%fd=[df0 dfn];
n=length(x)-1;
f=x;
h=x;
m=x;
for i=1:n
    h(i)=x(i+1)-x(i);
    f(i)=(y(i+1)-y(i))/h(i);
end
B=2*ones(1,n-1);
m(1)=fd(1);m(end)=fd(2);
A=B;
C=B;
g=A;
for i=1:n-1
    C(i)=h(i)/(h(i+1)+h(i));
    A(i)=h(i+1)/(h(i+1)+h(i));
    g(i)=3*(A(i)*f(i)+C(i)*f(i+1));
end
fL(1)=g(1)-A(1)*fd(1);
fL(n-1)=g(n-1)-C(n-1)*fd(2);
fL(2:n-2)=g(2:n-2);
m(2:n)=zgf(A,B,C,fL);
yx0=fl(x,y,m,x0);
function y=fl(xj,yj,mj,x)
n=length(xj);
y=0;
for i=1:n
    s=1;
    for j=1:n
        if i~=j
            s=s*(x-xj(j))/(xj(i)-xj(j));
        end
    end
    bi=(x-xj(i))*s^2;
    s1=0;
    for j=1:n
        if i~=j
            s1=s1+1/(xj(i)-xj(j));
        end
    end
    y=y+yj(i)*(1-2*(x-xj(i))*s1)*s^2+mj(i)*bi;
end
function x=zgf(A,B,C,f)
n=length(B);
B1=zeros(1,n-1);
Y=zeros(1,n);
x1=zeros(1,n);
B1(1)=C(1)/B(1);
for i=2:n-1
    B1(i)=C(i)/(B(i)-A(i)*B1(i-1));
end
Y(1)=f(1)/B(1);
for i=2:n
    Y(i)=(f(i)-A(i)*Y(i-1))/(B(i)-A(i)*B1(i-1));
end
x1(n)=Y(n);
for i=n-1:-1:1
    x1(i)=Y(i)-B1(i)*x1(i+1);
end
x=x1;
 


提 示:本站所有源码只提供浏览,需要定制的朋友可以联系在线客服!
注意:价格根据项目的难易程度来定价格业务咨询

自然边界条件的样条插值函数的Matlab程序 --下载地址

注意:为避免不必要的误会,本站项目里的源码只公开部分需要的联系在线客服

本站长期招聘程序代写高手,欢迎加入华南地区matlab团队

想创业却没有经验的人

无论你是否有过网上开店的经验,都可以随时联系在线客服,建立自己独立的网站
想开网店却不知道如何入手

淘宝创业成本低而且风险小,如果想开淘宝店的朋友可以联系在线客服。
想兼职创业,却不擅长交际与服务的人

在家创业月入5000元。网站程序+百套群发工具+网赚资料+域名+空间+本站终身代理资格,这样你网赚的条件全具备了。每天3小时管理、推广、收钱。
缺乏能快速赢利型产品的人

导入多种最新流行营销软件+网赚教程,让入驻者轻松加盟、复制有效成交技巧、快速赚钱。

源码评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

浏览说明

* 本站所有源码全部公开,随时随地浏览!
* MATLAB软件如用于商业用途,请购买正版!
* 如果您发现下载链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含破解及注册码均是由网上搜集,若侵犯了你的版权利益,敬请来信通知我们!
Copyright © 2008-2014 www.buycode.cn. All Rights Reserved.
页面执行时间:218.75000 毫秒