Matlab-学习心得及总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab 解方程基本思想

1、调用command window界面→在File→Script→编写方程→run

2、Solve(’eq1-数值’,’x’)注意:英文冒号;log=ln;log3x=lllx lll3;

3、方程组:[x,y]=solve(’eq1’,’eq2’)[‘2*x+3*y=4’,’4*x+5*y=6’]

4、[x, fval(近似零解)]=fzero(’eq1-数值’,初值)

5、Clear 清除变量;clc清屏

6、int()函数实现不定积分功能,例如:syms x; int(sin(-x))=-cos(x)

7、通过syms 函数定义 a b c……来解决含字母变量的矩阵运算

8、伴随矩阵A*=det(A)*inv(A),即可求解

9、syms x a;int(3*a*x+a,x)其中确定x为积分变量

10、syms x a b;int(1,x,a,b)=b-a,其中x表示积分变量,a为下限,b为上限

11、求偏微分:syms x y;z=sym('x^2+y^2');diff(z,'x',2)=2;其中2为二次偏微分

12、求导数:syms x ;z=sym('x^3');diff(z,'x',2)=6*x;其中2表示二次求导

13、求单变量最小化:

syms x;y=@(x) sin(x);[x,fval]=fminbnd(y,0,2*pi);x=1.5*pi;fval=-1;求解在区间[0,2*pi]上最小值fval输出最小值,x对应的极值点

14、一元函数定区间求最值并画出图像:

f=2*exp(-x)*sin(x) 在区间[0,8]中的最小值与最大值

syms x;

f=@(x)2*exp(-x)*sin(-x);

fplot(f,[0,8]);

[xmin,fmin]=fminbnd(f,0,8);(最小值)

f1=@(x)-2*exp(-x)*sin(-x);

[xmax,fmax]=fminbnd(f1,0,8);(最大值)

15、绘制多元函数的图像:

x=-1:0.1:1;

y=-1:0.1:1;

[X,Y]=meshgrid(x,y);

Z=exp(X)*(4*X.^2+2*Y.^2+4*X.Y+2*Y+1)

mesh/surf (X,Y,Z);

xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis')

;(注意矩阵中的'.')

16、多项式拟合

x=[];y=[];a=polyfit(x,y,n);式中n为拟合多项式的指数,y=a(1)x^n+a(2)x^(n-1)+……,拟合出来的数据依次为:a(1) ,a(2),…… xi=linspace (0,16,160);

yi=polyval(a,xi);plot(x,y,'o',xi,yi) (比较拟合的曲线与原始输入数据点之间的关系)

17、运用inline定义函数,例如:f(x,y)=sin(x*y),f=inline('sin(x*y','x','y'));z=f(pi/180,30)=0.5

18、BP神经网络代码:

P=[];%输入矢量

t=[];%目标输出矢量

[pn,minp,maxp,tn,mint,maxt]=premnmnx(p,t);%原始数据归一化

net=newff(minmax(p),[20,9,1],{'tansig','tansig','purelin'},'trainlm');%定义BP网络训练参数

net.trainParam.show=200; %显示循环间隔数 net.trainParam.lr=0.2;%学习效率 net.trainParam.epochs=20000;最大训练次数 net.trainParam.min_grad=1e-10;%最小梯度值 net.trainParam.goal=0.00000001;%期望误差(均方方差)

[net,tr]=train(net,pn,tn);%训练BP 网络

A=sim(net,pn);%计算结果

t1=postmnmx(A,mint,maxt);%网格计算值

E=(t-t1);

MSE=mse(E);

echo off;%训练后网络的输出误差

plot((1:26),t,'-*',(1:26),t1,'-o');%画输入矢量图和训练结果图

网格合格后的预测程序:

m=[];%测试数据

p2n=tramnmx(m,minp,maxp);%测试数据归一化

an=sim(net,p2n); %计算结果

[a]=postmnmx(an,mint,maxt);%数据的反归一化 ,即最终想得到的预测结果

19、多元线性回归(已知方程拟合)

y=b0+b1*x1+b2*x2+……+bn*xn;

x=[]';%使用列向量

y=[]';%使用列向量

xdate=[ones(size(x, 1), 1), x]; % 在原始数据x 的左边加一列1,即模型包含常数项

[b, bint, r, rint, s] = regress(y, xdata); % 调用regress 函数作一元线性回归 yhat = xdata*b; % 计算y 的估计值

b 计算出来的值依次为b0,b1,b2……

plot(x,y,'ro',x,yhat,'g*');%画出原始数据散点与回归直线图

20、非线性回归 function yy=model(beta0,x)

a=beta0(1);

b=beta0(2);

yy=a+(0.49-a)*exp(-b*(x-8));(指定函数名的编程)

%在脚本里面运行

在命令窗口里面输入:

x=[8.00 8.00 10.00 10.00 10.00 10.00 12.00 12.00 12.00 14.00 14.00 14.00 16.00 16.00 16.00 18.00 18.00 20.00 20.00 20.00 20.00 22.00 22.00 24.00 24.00 24.00 26.00 26.00 26.00 28.00 28.00 30.00 30.00 30.00 32.00 32.00 34.00 36.00 36.00 38.00 38.00 40.00 42.00]';

y=[0.49 0.49 0.48 0.47 0.48 0.47 0.46 0.46 0.45 0.43 0.45 0.43 0.43 0.44 0.43 0.43 0.46 0.42 0.42 0.43 0.41 0.41 0.40 0.42 0.40 0.40 0.41 0.40 0.41 0.41 0.40 0.40 0.40 0.38 0.41 0.40 0.40 0.41 0.38 0.40 0.40 0.39 0.39]';

beta0=[0.30 0.02];

betafit=nlinfit(x,y,'model',beta0);

betafit=0.3896 0.1011

相关文档
最新文档