没有合适的资源?快使用搜索试试~ 我知道了~
首页数值分析 MATLAB代码
资源详情
资源评论
资源推荐

MATLAB数值计算代码
G. 编写
插入排序
function Y=INSERTION_SORT(X)
len=length(X);
for j=2:len
key=X(j);
i=j-1;
while(i>0&&X(i)>key)
X(i+1)=X(i);
i=i-1;
end
X(i+1)=key;
end
Y=X;
冒泡排序
function Y=BUBBLESORT(X)
len=length(X);
for i=1:len-1
for j=len:-1:(i+1)
if X(j)<X(j-1)
key=X(j);
X(j)=X(j-1);
X(j-1)=key;
end
end
end
Y=X;

快速排序
function Y=QUICKSORT(X,p,r)
len=length(X);
if nargin<3
r=len;
end
if nargin<2
p=1;
end
if p<r
[q,X]=PARTITION(X,p,r);
X=QUICKSORT(X,p,q-1);
X=QUICKSORT(X,q+1,r);
end
Y=X;
function [q,Y]=PARTITION(X,p,r)
x=X(r);
i=p-1;
for j=p:(r-1)
if X(j)<=x
i=i+1;
key=X(i);
X(i)=X(j);
X(j)=key;
end
key=X(i+1);
X(i+1)=X(r);
X(r)=key;
end
q=i+1;
Y=X;

归并排序
function Y=MERGE_SORT(X,p,r)
if nargin<3
r=length(X);
end
if nargin<2
p=1;
end
if p<r
q=floor((p+r)/2);
X=MERGE_SORT(X,p,q);
X=MERGE_SORT(X,q+1,r);
X=MERGE(X,p,q,r);
end
Y=X;
function Y=MERGE(X,p,q,r)
n1=q-p+1;
n2=r-q;
L=zeros(1,n1+1);
R=zeros(1,n2+1);
for i=1:n1
L(i)=X(p+i-1);
end
for i=1:n2
R(i)=X(q+i);
end
L(n1+1)=inf;
R(n2+1)=inf;
i=1;
j=1;
for k=p:r
if L(i)<=R(j)
X(k)=L(i);
i=i+1;
else
X(k)=R(j);
j=j+1;
end
end
Y=X;

秦九韶算法
function y=qin(A,x)
%A为系数向量,x为求值点
%系数由高阶向低阶排列
n=length(A);
y=A(1);
for i=2:n
y=y.*x+A(i);
end
欧拉法求常微分方程数值解
function y=euler(f,x0,y0,h,x)
if x<x0
h=-h;
end
while(abs(x-x0)>abs(h))
y0=y0+f(x0,y0)*h;
x0=x0+h;
end
h=x-x0;
y=y0+f(x0,y0)*h;
改进的欧拉法
function y=euler_mod(f,x0,y0,h,x)
if x<x0
h=-h;
end
while(abs(x-x0)>abs(h))
y_p=y0+f(x0,y0)*h;
x0=x0+h;
y_c=y0+f(x0,y_p)*h;
y0=(y_p+y_c)/2;
end
h=x-x0;
y_p=y0+f(x0,y0)*h;
x0=x0+h;
y_c=y0+f(x0,y_p)*h;
y=(y_p+y_c)/2;
剩余18页未读,继续阅读



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0