📄 spline_h_2.m
字号:
function [spa1,spb1,spc1] = spline_h_2(cold,tt,cv,reler,ter,knots)
%
% cold -> valodi gorbe
% tt -> idovektor a 12 v. 31 ponthoz
% cc -> 12x3 v. 31x3 matrix adatokhoz
% reler -> rel.zaj 0.05 0.10
% ter -> zaj tipusa: 0=fuggetlen,1=fuggo
% knots -> csomopontok
% cycnum -> ciklusszam
% P1 <- p1 vector
% P2 <- p2 vector
%
seeki = 0;
randn('seed',seeki);
n = length(knots); %number of nodes
nc = 3; %number of components
%+noise
ca = cv(:,1);
cb = cv(:,2);
cc = cv(:,3);
if ter==0,
ca = ca + randn(size(ca)).*ca*reler;
cb = cb + randn(size(cb)).*cb*reler;
cc = cc + randn(size(cc)).*cc*reler;
else
rr = randn(size(ca));
ca = ca + rr.*ca*reler;
cb = cb + rr.*cb*reler;
cc = cc + rr.*cc*reler;
end
%eq. hard const. /Ca+Cb+Cc = 1, dCa/dt+...+dCc/dt = 0/
A=repmat(eye(n*2),1,nc);
b=repmat([1 0],1,n)';
%/Ca(1) = 1, Cb(1) = 0, Cc(1) = 0/
A(1,1) = 1;
A(2*n+1,2*n+1) = 1;
A(2*n+2,4*n+1) = 1;
b(1,1) = 1;
b(2*n+1,1) = 0;
b(2*n+2,1) = 0;
%neq. hard const. /dCa/dt < 0, dCb/dt>0 dCc/dt>0 /
Anv = zeros(n,2*n);
for i = 1:n
Anv(i,2*i) = 1;
end
An = zeros(n*nc,2*n*nc);
An(1:n,1:2*n) = Anv;
An(n+1:2*n,2*n+1:4*n) = -Anv;
An(2*n+1:3*n,4*n+1:6*n) = -Anv;
bn = zeros(n*nc,1);
%no soft. constr.
s = [];
lambda1 = 0;
lambda2 = 0;
w = [0 0 0];
sum1 = 0;
sum2 = 0;
%Spline
warning off
[spa1,spb1,spc1] = fspline3([tt,tt,tt],[ca,cb,cc],knots,s,lambda1,lambda2,w,sum1,sum2,A,b,An,bn);
warning on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -