📄 sanciyangtiao.m
字号:
function S =Sanciyangtiao(x)
X=0:10;
X=-5+X;
y=0:10;S=0;
M=0:10;
N=0:10;S=0;
a=0:10;
b=0:10;
syms m
r=1/(1+m^2);
for i=1:11
y(i)=subs(r,'m',X(i));
end
if x>=X(1)&&x<=X(2)
a(1)=(1+2*(x-X(1))/(X(2)-X(1)))*(((x-X(2))/(X(1)-X(2)))^2);
b(1)=(x-X(1))*(((x-X(2))/(X(1)-X(2)))^2);
else
a(1)=0;
b(1)=0;
end
for i=2:10
if x>=X(i-1)&&x<=X(i)
a(i)=(1+2*(x-X(i))/(X(i-1)-X(i)))*(((x-X(i-1))/(X(i)-X(i-1)))^2);
b(i)=(x-X(i))*(((x-X(i-1))/(X(i)-X(i-1)))^2);
elseif x>=X(i)&&x<=X(i+1)
a(i)=(1+2*(x-X(i))/(X(i+1)-X(i)))*(((x-X(i+1))/(X(i)-X(i+1)))^2);
b(i)=(x-X(i))*(((x-X(i+1))/(X(i)-X(i+1)))^2);
else
a(i)=0;
b(i)=0;
end
end
if x>=X(10)&&x<=X(11)
a(11)=(1+2*(x-X(11))/(X(10)-X(11)))*(((x-X(10))/(X(11)-X(10)))^2);
b(11)=(x-X(11))*(((x-X(10))/(X(11)-X(10)))^2);
else
a(11)=0;
b(11)=0;
end
A=zeros(11);
for i=2:10
A(i,i)=2;
A(i-1,i)=0.5;
A(i,i-1)=0.5;
M(i)=1.5*(y(i+1)-y(i-1));
end
A(1,1)=2;
A(11,11)=2;A(11,10)=0.5;
M(1)=3*(y(2)-y(1));
M(11)=3*(y(11)-y(10));
N=inv(A)*M';
for i=1:11
S=S+(y(i)*a(i)+N(i)*b(i));
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -