有两种方法,一种是用matlab自带的遗传算法工具箱;还有一种是自己编写遗传算法解决问题。第二种方法的话,网上可以找到很多遗传算法的matlab代码,我也可以提供。第一种的话,有一定的局限性。
❷ 如何用MATLAB编写相位相关算法
fft()可以直接fourier变换,然后会自动得到幅度谱\相位谱\能量谱数据.
找到正确的相位谱数据列,和另一经f变换的数据的相位谱做相关.
挺麻烦,说不清。
参考《定量侧井声学》唐晓明着第三章第二节中“波形叠加相干法”,有些类似。
还可以用这个相干系数co=((序列{Ai}求和-{Ai}平均)*(序列{Bi}求和-{Bi}平均))/根号下((序列{Ai}求和-{Ai}平均)平方* ((序列{Bi}求和-{Bi}平均)平方)
❸ matlab算法
拉格朗日function y=lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s;end SOR迭代法的Matlab程序 function [x]=SOR_iterative(A,b)% 用SOR迭代求解线性方程组,矩阵A是方阵 x0=zeros(1,length(b)); % 赋初值 tol=10^(-2); % 给定误差界 N=1000; % 给定最大迭代次数 [n,n]=size(A); % 确定矩阵A的阶 w=1; % 给定松弛因子 k=1; % 迭代过程 while k<=N x(1)=(b(1)-A(1,2:n)*x0(2:n)')/A(1,1); for i=2:n x(i)=(1-w)*x0(i)+w*(b(i)-A(i,1:i-1)*x(1:i-1)'-A(i,i+1:n)*x0(i+1:n)')/A(i,i); end if max(abs(x-x0))<=tol fid = fopen('SOR_iter_result.txt', 'wt'); fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n'); fprintf(fid,'迭代次数: %d次\n\n',k); fprintf(fid,'x的值\n\n'); fprintf(fid, '%12.8f \n', x); break; end k=k+1; x0=x; end if k==N+1 fid = fopen('SOR_iter_result.txt', 'wt'); fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n'); fprintf(fid,'迭代次数: %d次\n\n',k); fprintf(fid,'超过最大迭代次数,求解失败!'); fclose(fid); end Matlab中龙格-库塔(Runge-Kutta)方法原理及实现龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。龙格库塔方法的理论基础来源于泰勒公式和使用斜率近似表达微分,它在积分区间多预计算出几个点的斜率,然后进行加权平均,用做下一点的依据,从而构造出了精度更高的数值积分计算方法。如果预先求两个点的斜率就是二阶龙格库塔法,如果预先取四个点就是四阶龙格库塔法。一阶常微分方程可以写作:y'=f(x,y),使用差分概念。(Yn+1-Yn)/h= f(Xn,Yn)推出(近似等于,极限为Yn')Yn+1=Yn+h*f(Xn,Yn)另外根据微分中值定理,存在0<t<1,使得Yn+1=Yn+h*f(Xn+th,Y(Xn+th))这里K=f(Xn+th,Y(Xn+th))称为平均斜率,龙格库塔方法就是求得K的一种算法。利用这样的原理,经过复杂的数学推导(过于繁琐省略),可以得出截断误差为O(h^5)的四阶龙格库塔公式:K1=f(Xn,Yn);K2=f(Xn+h/2,Yn+(h/2)*K1);K3=f(Xn+h/2,Yn+(h/2)*K2);K4=f(Xn+h,Yn+h*K3);Yn+1=Yn+h*(K1+2K2+2K3+K4)*(
❹ 如何看matlab 自带函数 的算法是怎么编的
matlab函数的源程序都可以看到的,如果不是高手几乎看不懂!!
到matlab文件夹搜索“函数名”会找到那个m文件,打开看就行了
❺ 用matlab编写两个排序函数,分别使用插入排序算法、起泡排序算法。
function y=bubblesort(x)
%冒泡法排序.
r=length(x);
for i=1:r-1
for j=i+1:r
if x(i)>x(j)
temp=x(i);
x(i)=x(j);
x(j)=temp;
end
end
end
y=x;
function y=insertionsort(x)
%插入法排序.
r=length(x);
for i=1:r
for j=1:r-1
if x(j)>x(j+1)
temp=x(j);
x(j)=x(j+1);
x(j+1)=temp;
end
end
end
y=x;
❻ 请高手帮忙:MATLAB程序 编写一个程序,要求实现下列算法:首先将图像分割成许多8X8的子图像
clearall;
closeall;
clc;
I=double(imread('elain.bmp'));%读入图像
imshow(uint8(I));%显示图像
[Mro,Nco]=size(I);%获得读入图像的大小
fun1=@fft2;%获得fft变换函数的句柄
Imagefft=blkproc(I,[8,8],fun1);%图像块进行fft变换
Imtemp=double(zeros(Mro,Nco));%设置临时变量用于存处理后的图像值
forii=1:8:Mro
forjj=1:8:Nco
Imtemp(ii:ii+3,jj:jj+3)=Imagefft(ii:ii+3,jj:jj+3);%舍去小的变换系数
end
end
fun2=@ifft2;
Imageifft=blkproc(Imtemp,[8,8],fun2);%分块逆变换
huifu=uint8(abs(Imageifft));%取整
figure;
imshow(huifu);%显示图像
❼ matlab 算法如何使用
遗传算法可以用来最优化计算,即计算一个东西的最大或最小的东西,或者最优解。不知道你想用来具体解决什么问题,没法仔细回答。你把具体想干啥和原始数据发到邮箱[email protected],我可以帮你解答
❽ matlab,有哪些是线性回归算法!
2015a版的matlab有如下的线形回归算法。
方法名 函数名 说明
1.多元线性回归 fitlm 具有多个预测变量的线性回归
2.逐步回归 stepwise 交互式逐步回归
3多目标的多元线性回归 mvregress 使用多变量输出的线性回归
4有正则化的多元线性回归 lasso 使用弹性网正则化的多元线性回归
5有正则化的多元线性回归 ridge Ridge回归