2022年2022年计算方法上机作业求三次样条插值函数的matlab程序 .pdf
《2022年2022年计算方法上机作业求三次样条插值函数的matlab程序 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算方法上机作业求三次样条插值函数的matlab程序 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算方法上机报告23 附录 3 求三次样条插值函数的matlab程序clc;clear; type = input(n 选择插值节点的类型:n 插值对象为连续函数请输入1,n插值对象为列表函数请输入2。n); while type =1 & type=2 fprintf(n 输入值有误,请重新输入n); pause(1) type = input(n 选择插值节点的类型:n 插值对象为连续函数请输入1,n 插值对象为列表函数请输入2。n); end if type=1 s = input(n 请输入连续函数的表达式:nf(x) = ,s); a = input(n 请输入插值区间下限a:n);
2、 b = input(n 请输入插值区间上限b:n); n = input(n 输入插值节点数n:n); f = inline(s); x = a:(b-a)/(n-1):b; for o=1:n oo = a+(o-1)*(b-a)/(n-1); y(o) = f(oo); end end if type=2 n = input(n 输入插值节点数n:n); x = input(n 输入插值节点构成的向量x_i:n); y = input(n 输入插值节点对应的函数值构成的向量y_i:n); end h = zeros(n-1,1); miu = zeros(n-2,1); lambda =
3、 zeros(n-2,1); S = zeros(n-1,4); for i=1:n-1 h(i) = x(i+1)-x(i); end for j=1:n-2 miu(j) = h(j)/(h(j)+h(j+1); lambda(j) = 1-miu(j); d(j) = 6/(h(j)+h(j+1)*(y(j+2)-y(j+1)/h(j+1)-(y(j+1)-y(j)/h(j); end %边界条件的选择boundary = input(n 选择封闭方程组的边界条件: n 第一类边界条件输入1,n 第二类边界条件输入2, n 第三类边界条件输入3。n); while boundary=1
4、& boundary=2 & boundary=3 fprintf(n 输入值有误,请重新输入n); pause(1) boundary = input(n 选择封闭方程组的边界条件: n 第一类边界条件输入 1,n 第二类边界条件输入2,n 第三类边界条件输入3。n); end %第一类边界条件AM=D 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 附录 3 求三次样条插值函数的matlab 程序24 if boundary
5、 = 1 A = zeros(n-2,n-2); D = zeros(n-2,1); M_0 = input(n输入插值区间左端点a 处的二阶导数值(若为自然三次样条插值函数,输入0) :n); M_n = input(n输入插值区间右端点b 处的二阶导数值(若为自然三次样条插值函数,输入0) :n); for k = 2:n-3 A(k,k-1:k+1) = miu(k),2,lambda(k); D(k) = d(k); end A(1,1:2) = 2,lambda(1); A(n-2,n-3:n-2) = miu(n-2),2; D(1) = d(1)-miu(1)*M_0; D(n-
6、2) = d(n-2)-lambda(n-2)*M_n; end %第二类边界条件if boundary = 2 A = zeros(n,n); D = zeros(n,1); dydx_a = input(n 输入插值区间左端点a 处的一阶导数值:n); dydx_b = input(n 输入插值区间右端点b 处的一阶导数值:n); d_0 = 6/h(1)*(y(2)-y(1)/h(1)-dydx_a); d_n = 6/h(n-1)*(dydx_b-(y(n)-y(n-1)/h(n-1); for k = 2:n-1 A(k,k-1:k+1) = miu(k-1),2,lambda(k-
7、1); D(k) = d(k-1); end A(1,1:2) = 2,1; A(n,n-1:n) = 1,2; D(1) = d_0; D(n) = d_n; end %第三类边界条件if boundary =3 A = zeros(n-1,n-1); D = zeros(n-1,1); miu_n = h(n-1)/(h(n-1)+h(1); lambda_n = 1-miu_n; d_n = 6/(h(n-1)+h(1)*(y(2)-y(n)/h(1)-(y(n)-y(n-1)/h(n-1); for k=2:n-2 A(k,k-1:k+1) = miu(k),2,lambda(k);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算方法上机作业求三次样条插值函数的matlab程序 2022 计算方法 上机 作业 三次 样条插值 函数 matlab 程序
限制150内