我前面讲过,每个人熟练掌握一门计算机语言是很有必要的。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)。