分享

5分钟入门matlab

 私有资料 2017-01-11

我前面讲过,每个人熟练掌握一门计算机语言是很有必要的。matlab 功能强大,使用简便。对于非计算机专业的应用来讲,比起C++来,matlab有很大的优势。你只需要5分钟,就可以matlab入门。

 

首先,你当然要安装好 matlab的软件,V6.5版本就已经足够好了。哪里找这软件,你要自己想办法。

 

你启动matlab。主界面上,你可以直接输入a=4; b=3; c=a+b 试试看,如果出结果,就说明软件正常启动了。

 

现在你就可以开始学习编程了。 从 File --> New 打开 M-file 编辑器。程序就在这里写。你先试试matlab的强大绘图功能。编程如下:

clear;

x = 1:0.1:10;

y = sin(x);

plot(x,y);

在命令条Debug 下启动Save and run, 输入一个文件名,比如abc,然后图形就应该自动显示出来了。注意,这里每行都是分号结尾的。如果某一行没有分号结尾,那么这一行的计算结果就会在主界面输出。另外,你这程序里面的:;.()这些符号一定要用英文输入。

 

你有C语言的基础,数组,函数等概念你应该是知道的,所以,你可以很容易看懂matlab的程序。然后,你可以学会如何对一个数组求和,这也是积分的基本技术。比如,我们要把上述正弦函数在1到10之间积分,就可以这么做:

clear;   把所有以前用过的变量清空。

x = 1:0.1:10;  y = sin(x); plot(x,y);

s = 0;

for j = 1: length(x)-1;  % 这里的length(x) 表示数组x中数的个数。

   s = s + y(j)*0.1;  % 正弦曲线下面的面积分成很多小格,每格的面积逐步加入s中

end

s

最后这个s 没分号,在主界面输出结果。这里%后面是注释,程序是不管的。有了求和的基础,你已经可以做很多事了。

 

还有不懂的,你就在主界面键入helpwin,进入帮助页里查找所有的功能以及举例。另外,百度一下matlab,你还可以找到大量的学习资源。现在你已经入门了。

 

我再给你一个解二阶微分方程的例子:y" + xy' + x^2 = 0, 边界条件 y(1) = 0, y'(1) = 0.1, 在[1,100]区间求解, 编程如下:

 

function exa()
    x1 = 1;  x2 = 100;  %边界
    y0 = 0;  y1 = 0.1; %边界条件y(1), y'(1)
    [x, y] = ode45(@qiujie, [x1  x2], [y0 y1]); %调用专门解高阶微分方程的库函数ode45
   
    plot(x,y) ;
    function dydx=qiujie(x,y)   %定义函数,用dydx表示导数
        dydx = zeros(2,1);    %清空导数值,zeros(2,1)表示2行1列都是0.
        dydx(1) = y(2);        %y的一次导数记为 y(2)
        dydx(2) = -x*dydx(1) - x^2; %y的二次导数
    end
end

运行(Debug-->run)这个程序就把上面的导数方程解出来了,并画出图来。懂了这个ode技术,你就已经有点专业了。

 

我给大家布置一个作业:有一个波函数f(x,t), 满足 -f"(x,t) + V(x) f(x,t) + |f(x,t)|^2 f(x,t) = i df(x,t)/dt,其中 V(x) = A cos(kx). 自己设定参数和边界条件求解。提示,这题你需要从helpwin里寻找偏微分方程的解法(pde)。 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多