matlab用于计算方法的源程序(2)

2019-04-23 19:00

function f=\%Newdon插值多项式 %f=InterpNewdon(x,y,x0)

%f:插值多项式或者是插值多项式在x0处的值 %x:节点 %y:函数值 %x0:某一测试点 % %调用格式

%f=InterpNewdon(x,y) 返回插值多项式

%f=InterpNewdon(x,y,x0) 返回插值多项式在x0点的值 %应用举例:

%x=[1 2 3 4 5];y=[1 4 7 8 6];x0=6; %f=InterpNewdon(x,y) %f=InterpNewdon(x,y,x0)

if length(x)==length(y) n=\else

disp('节点个数和函数值个数不同!') f=' '; return; end

A=zeros(n);%初始化差商矩阵 for i=\

A(i,1)=y(i);%差商矩阵的第一列是函数值 end

%计算差商矩阵

%差商矩阵中对角线上的元素为Newdon插值多项式的系数 for j=\ for i=\

A(i,j)=(A(i,j-1)-A(i-1,j-1))/(x(i)-x(i-j+1)); end end

%求Newdon插值多项式 p=zeros(1,n); for i=\

p1=A(i,i);%差商矩阵对角线上的元素就是Newdon插值多项式的系数 for j=\

p1=conv(p1,[1 -x(j)]);%计算Newdon插值多项式的基项 end

p1=[zeros(1,n-i),p1];%向量相加,维数必须相同。把向量的元素补齐 p=\end

if nargin==3

f=\计算插值多项式在x0处的值 else

f=\把插值多项式的向量形式转化为插值多项式的符号形式 end

5、基本Guass消去法求解线性方程组

function x=\%基本Guass消去法求解线性方程组Ax=b %x=EqtsBasicGuass(A,b) %x:解向量,列向量 %A:线性方程组的矩阵 %b:列向量 %

%应用举例:

%A=[2 2 3;4 7 7;-2 4 5]; b=[3;1;-7]; %x=EqtsBasicGuass(A,b)

%检查输入参数

if size(A,1) ~= size(b,1) disp('输入参数有误!'); x=' '; return; end %(A|b) A=[A b];

%消去过程 n=size(A,1); l=zeros(n); for k=\ for i=\

l(i,k)=A(i,k)/A(k,k); end

for i=\ for j=\

A(i,j)=A(i,j)-l(i,k)*A(k,j); end for j=\ A(i,j)=0; end end end

%回代过程 x=zeros(n,1);

x(n)=A(n,n+1)/A(n,n); for i=\ y=\ for j=\ y=y+A(i,j)*x(j); end

x(i)=(A(i,n+1)-y)/A(i,i); end return;

6、三角分解法求解线性方程组

function x=\%Doolittle分解法求解线性方程组Ax=b %x=EqtsDoolittleLU(A,b) %x:解向量,列向量 %A:线性方程组的矩阵 %b:列向量 %

%应用举例:

%A=[6 2 1 -1;2 4 1 0;1 1 4 -1;-1 0 -1 3];b=[6;-1;5;-5]; %x=EqtsDoolittleLU(A,b)

%检查输入参数

if size(A,1) ~= size(b,1) disp('输入参数有误!'); x=' '; return; end

%分解

%把L和U的元素存储在A的相应位置上 n=length(b); for k=\ for j=\ z=0;

for r=\

z=\ end

A(k,j)=A(k,j)-z; end

for i=\ z=0;

for r=\

z=\ end

A(i,k)=(A(i,k)-z)/A(k,k); end end %求解

x=zeros(size(b)); for i=\ z=\ for k=\ z=z+A(i,k)*x(k); end x(i)=b(i)-z; end

for i=\ z=\ for k=\ z=z+A(i,k)*x(k); end

x(i)=(x(i)-z)/A(i,i); end return

7、追赶法求解三对角线性方程组

function x=\%追赶法求解三对角线性方程组Ax=b %x=EqtsForwardAndBackward(L,D,U,b) %x:三对角线性方程组的解 %L:三对角矩阵的下对角线,行向量 %D:三对角矩阵的对角线,行向量 %U:三对角矩阵的上对角线,行向量 %b:线性方程组Ax=b中的b,列向量 %

%应用举例:

%L=[-1 -2 -3];D=[2 3 4 5];U=[-1 -2 -3];b=[6 1 -2 1]'; %x=EqtsForwardAndBackward(L,D,U,b)

%检查参数的输入是否正确 n=length(D);m=length(b); n1=length(L);n2=length(U);

if n-n1 ~= 1 || n-n2 ~= 1 || n ~= m disp('输入参数有误!') x=' '; return; end

%追的过程 for i=\

L(i-1)=L(i-1)/D(i-1); D(i)=D(i)-L(i-1)*U(i-1); end

x=zeros(n,1); x(1)=b(1); for i=\

x(i)=b(i)-L(i-1)*x(i-1); end

%赶的过程 x(n)=x(n)/D(n); for i=\

x(i)=(x(i)-U(i)*x(i+1))/D(i); end return;


matlab用于计算方法的源程序(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:古诗文大赛试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: