




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据分析-MATLAB相关算法
一.非线性方程求解1.二分法m文件:function[c,err,yc]=bisect(f,a,b,delta)%f是所要求解的函数%a,b是区间的左右限%delta是误差界%c是近似解%yc是函数f在c上的值,err为误差ifnargin<4
delta=1e-5;endya=feval('f',a);yb=feval('f',b);ifyb==0
c=b,return,endifya*yb>0,
disp('(a,b)不是有根区间');
return,endmax1=1+round((log(b-a)-log(delta))/log(2));fork=1:max1
c=(a+b)/2;
yc=feval('f',c);
ifyc==0
a=c;
b=c;
break,
elseifyb*yc>0
b=c;
yb=yc;
else
a=c;
ya=c;
end
if(b-a)<delta
break,
end
k,c=(a+b)/2,err=abs(b-a),yc=feval('f',c);end2.不动点迭代m文件function[p0,k,err,p]=fixpt(g,p0,tol.max1)%g是给定的迭代函数%p0是初值%p是不动点的近似值P(1)=p0;fork=2:max1
P(k)=feval('g',P(k-1));
k,err=abs(P(k)-P(k-1))
p=P(k);
if(err<tol)
break;end
ifk==max1
disp('超过了迭代最大次数;
endendP选定的迭代函数:functiony=g(x)y=sin(x)/x;二.方阵的特征值与特征向量1幂法function[mxbiaozhi]=mifa(A,jingdu,cishu)%幂法求矩阵最大特征值,其中%m为绝对值最大的特征值,x为对应最大特征值的特征向量%biaozhi表明迭代是否成功ifnargin<3
cishu=100;endifnargin<2
jingdu=1e-5;endn=length(A);x=ones(n,1);biaozhi='迭代失败!';k=0;m1=0;whilek<=cishu
v=A*x;
[vmax,k]=max(abs(v));
m=v(k);
x=v/m;
ifabs(m-m1)<jingdu
biaozhi='迭代成功!';break;
end
m1=m;
k=k+1;end三.常微分方程求解1.改进欧拉法解微分方程functionyout=gaijinoula(f,x0,y0,xn,n)%定义输入输出x=zeros(1,n+1);y=zeros(1,n+1);x(1)=x0;y(1)=y0;h=(xn-x0)/n;fori=1:n
x(i+1)=x(i)+h;
z0=y(i)+h*feval(f,x(i),y(i));
y(i+1)=y(i)+(feval(f,x(i),y(i))+feval(f,x(i+1),z0))*h/2;
end
shuchu=[x',y']fprintf('x(i)
y(i)')
举例:所要求解的函数:functionDy=f(x,y)Dy=x+y;2.四阶龙格库塔法解微分方程functionyout=xin(bianliang)%定义输入输出clearallx0=0;xn=1;y0=1;h=0.1;%设置初始值、区间和步长[y,x]=lgkt4j(x0,xn,y0,h);%四阶龙格库塔法n=length(x);fprintf('i
x(i)
y(i)\n');%输出格式fori=1:n
fprintf('%2d%3.3f%4.4f\n',i,x(i),y(i));end
function[y,x]=lgkt4j(x0,xn,y0,h)x=x0:h:xn;%设置区间n=length(x);y1=x;y1(1)=y0;fori=1:n
K1=f(x(i),y1(i));
K2=f(x(i)+h/2,y1(i)+h/2*K1);
K3=f(x(i)+h/2,y1(i)+h/2*K2);
K4=f(x(i)+h,y1(i)+h*K3);
y1(i+1)=y1(i)+h/6*(K1+2*K2+2*K3+K4);
endy=y1;
举例:functionDy=f(x,y)
Dy=y-2*x/y;
执行结果为:
i
x(i)
y(i)
10.0001.0000
20.1001.0954
30.2001.1832
40.3001.2649
50.4001.3416
60.5001.4142
70.6001.4832
80.7001.5492
90.8001.6125100.9001.6733111.0001.7321四.插值法1拉格朗日插值function[c,l]=lglr(x,y)%x为n个节点的横坐标组成的向量,y为纵坐标组成的向量%c为插值函数的系数组成的向量%输出为差值多项式的系数w=length(x);n=w-1;l=zeros(w,w);fork=1:n+1
v=1;
forj=1:n+1
ifk~=j
v=conv(v,poly(x(j)))/(x(k)-x(j));
end
end
l(k,:)=v;endc=y*l;
五.数据拟合
1.最小二乘拟合functionc=zxrc(x,y,m)%x是数据点横坐标,y数据点纵坐标%m要构造的多项式的系数,c是多项式由高到低的系数所组成的向量n=length(x);b=zeros(1:m+1);f=zeros(n,m+1);fork=1:m+1
f(:,k)=x'.^(k-1);enda=f'*f;b=f'*y';c=a\b;c=flipud(c);六.矩阵相关程序1.求矩阵的行列式functiond=hanglieshi(a)%求任意输入矩阵的行列式
clearall;
a=input('输入矩阵a=');
d=1;
n=size(a);%方阵的行(或者列)数
fork=1:n-1
e=a(k,k);%设矩阵的主元
fori=k:n
%求出矩阵的全主元
forj=k:n
ifabs(a(i,j))>e
e=a(i,j);
p=i;
q=j;
elsec=0;
end
end
end
forj=k:n%行交换
t=a(k,j);
a(k,j)=a(p,j);
a(p,j)=t;
end
ifp~=k%判断行列式是否换号
d=d*(-1);
elsed=d;
end
fori=k:n%列交换
t=a(i,k);
a(i,k)=a(i,q);
a(i,q)=t;
end
ifq~=k%判断行列式是否换号
d=d*(-1);
elsed=d;
end
ifa(k,k)~=0
fori=k+1:n
%消元
r=a(i,k)/a(k,k);
forj=k+1:n
a(i,j)=a(i,j)-r*a(k,j);
end
end
elsed=d;
endend
fori=1:n%求行列式
d=d*a(i,i);
enddisp('矩阵a的行列式为:')d
2.矩阵的换行functionc=huanhang(a)%实现矩阵换行clearall;a=input('输入矩阵a=');[m,n]=size(a);
forj=1:n
t=a(1,j);
a(1,j)=a(2,j);
a(2,j)=t;
end
c=a;
disp('换行后矩阵a变为:')
c
3.列主元消元法解方程functiond=jiefang(a)%列主元消元法解方程clearall;a=input('输入矩阵a=');[row,column]=size(a);
fori=1:column%每一列的列标
m(i)=i;
s(i)=0;
x(i)=0;
end
fork=1:row-1%最后一行不用比较
e=a(k,k);
p=k;
q=k;
fori=k:row
forj=k:column-1
ifabs(a(i,j))>abs(e)
e=a(i,j);
p=i;
q=j;
elsec=0;
end
end
end
t=m(k);%换列标记
m(k)=m(q);
m(q)=t;
fori=1:row
%列交换
t=a(i,k);
a(i,k)=a(i,q);
a(i,q)=t;
end
forj=k:column
%行变换
t=a(k,j);
a(k,j)=a(p,j);
a(p,j)=t;
end
ifa(k,k)==0
%消元
disp('非唯一解')
else
fori=k+1:row
r=a(i,k)/a(k,k);
forj=k:column
a(i,j)=a(i,j)-r*a(k,j);
end
end
end
end
ifa(row,row)==0
disp('非唯一解')
else
s(row)=a(row,column)/a(row,row);
s(row)
q=m(row);
x(q)=s(row);
fori=row-1:1
forj=i+1:row
s(i)=s(i)+a(i,j)*x(i);
end
s(i)=[a(i,column)-s(i)]/a(i,i);
q=m(i);
x(q)=s(i);
end
end
fori=1:row
x(i)
end
end
4.两矩阵相乘functiond=chengfa(A,B)%
实现两个矩阵相乘clearall;A=input('输入矩阵A=');B=input('输入矩阵B=')[mn]=size(A);[nbp]=size(B);C=zeros(m,p);ifn~=nb
disp('不满足矩阵相乘条件')elsefori=1:m
forj=1:p
d=0;
fork=1:n
d=d+A(i,k)*B(k,j);
end
C(i,j)=d;
endend
disp('矩阵AB结果为:')
C
End
5.矩阵元素最大值及下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省云学联盟2024-2025学年高一下学期3月月考物理试题(原卷版+解析版)
- 不完全市场下发展中国家的农村市场讲义
- 《登泰山记》读析
- 2025年党章党史国史国情知识竞赛题库及答案(共200题)
- 盆底肌训练与盆底电刺激在产妇产后盆底肌力康复治疗中的应用价值探讨
- 《国际市场营销》课件-第9章 国际市场促销策略
- 《电子商务基础》课件-话题3 电子商务运用
- 橄榄球俱乐部简装合同样本
- 保险业务代理居间协议
- 电子商务平台订单管理表
- DB44-T 2480-2024 铝及铝合金深井铸造安全技术规范
- 胸痛诊疗科普课件
- 人教版七年级历史《第7课 辽、西夏与北宋的并立》课件
- 水生产企业(自来水公司)安全生产风险分级管控和隐患排查治理双体系方案全套资料(2021-2022版)
- 重症肺炎的护理
- JJF1030-2023温度校准用恒温槽技术性能测试规范
- YYT 1849-2022 重组胶原蛋白
- 幼儿园小班教案《彩灯》
- 2023年财政部部属单位招聘考试真题及答案
- 网约车公司运营细则
- 2022年四川省绵阳市中考语文真题
评论
0/150
提交评论