数学模型讲PPT课件

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

0.6 0.4
0.2
0
(2)调用ode45函数求方程的根,(to=0,tf=12) -0.2
-0.4
[T,Y] = ode45('eg202',[0 12],[0 1 1]);
-0.6
plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.');
-0.8
-1
0
2
4
6
8
10
二.数据的输入输出
• 2. pause函数:暂停程序的执行。
• 调用格式: pause(延迟秒数) • 注:如果省略延迟时间,直接使用pause,则将暂停程 序,直到用户按任一键后程序继续执行。
• 3. disp函数:命令窗口输出函数。
• 调用格式: disp(输出项)
• 注:输出项为字符串或矩阵。
用ezplot命令: ezplot('x^3',[-3,3]);
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
x3
25 20 15 10
5 0 -5 -10 -15 -20 -25
-3
-2
-1
0
1
2
3
x
②画出隐函数 ex sin(xy) 0 在 [-2,0.5],[0,2] 上的图形
Y= dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')
结果为:
Y = 3*exp(-2*x)*sin(5*x)
Eg 202 微分方程数值解
y1 y2 y3
y2 y3
y1 y3 0.51y1 y2
求解y1, y2, y3在[0,12]上的数值解
例 设银行年利率为11.25%。将10000元钱存入银行, 问多长时间会连本带利翻一番?
MATLAB (while1)
3、If-Else-End结构 (1)有一个选择的一般形式是:
if expression
{commands}
end 如果在表达式(expression)里的所有元素为真, 就执行if和end语句之间的命令串{commands}.
60
50
40
30
20
10
0
-1
-0.5
0
0.5
1
1.5
2
Eg 302 三维图形的画法(一)
(1)空间三维曲线图形 plot3
画出参数方程 x=sin(t),y=cos(t),z=t 在 [0,10 ]上的图形
40
t=0:pi/50:10*pi; 30
20
plot3(sin(t),cos(t),t,'b');
MATLAB介绍
一、变 量
二、函 数
三、 矩阵(数值)运算 四、 MATLAB编程 五、 优化求解 六、 符号运算 七、 多项式运算
数学运算符号及标点符号
+ 加法运算,适用于两个数或两个同阶矩阵相加. — 减法运算 * 乘法运算 .* 点乘运算 / 除法运算 ./ 点除运算 ^ 乘幂运算 .^ 点乘幂运算 \ 反斜杠表示左除.

设f
( x)
x2
1
x
1 ,
求f
( 2),
f
(1)
2x x 1
先建立M文件fun1.m定义函数f(x),再在 Matlab命令窗口输入fun1(2),fun1(-1)即可。
MATLAB (fun1)
2) 有三个或更多的选择的一般形式是: if (expression1) {commands1} else if (expression2) {commands2} else if (expression3) {commands3} else if …… else end
function 因变量名=函数名(自变量名) 函数值的获得必须通过具体的运算实现,并赋给因变量.
M文件建立方法:1. 在Matlab中,点:File->New->M-file 2. 在编辑窗口中输入程序内容 3. 点:File->Save,存盘,M文件名必须 与函数名一致。
Matlab的应用程序也以M文件保存。
例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2 1.建立M文件:fun.m
function f=fun(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2
2. 可以直接使用函数fun.m
例如:计算 f(1,2), 只需在Matlab命令窗口键入命令:
x=[1 2] fun(x)
sin
n
10
的值
MATLAB (for1)
2、While循环
与for循环以固定次数求一组命令相反,while循环以不定的次 数求一组语句的值.
while expression {commands}
end
只要在表达式(expression)里的所有元素为真,就执行while和 end语句之间的命令串{commands}.
x = cos(t).3, y = sin(t).3
用ezplot命令:
0.8
0.6
0.4
ezplot('cos(t).^3','sin(t).^3',[-pi,pi]);
0.2
y
0
-0.2
-0.4
-0.6
-0.8
-1
-0.5
0
0.5
1
x
③画出函数 y e2x sin(3x2 ) 在 [-1,2] 上的图形
MATLAB(fun2)
Eg 101 求解线性方程组
2x1 x2 5x3 x4 13
x1
5x2
7x4
9
2x2 x3 x4 6
x1 6x2 x3 4x4 0
程序:A=[2,1,-5,1; 1,-5,0,7; 0,2,1,-1; 1,6,-1,-4];
b=[13,-9,6,0]'; x=A\b;
q(1)=x-0.6*sin(x)-0.3*cos(y);
q(2)=y-0.6*cos(x)+0.3*sin(y); (2)调用fsolve函数求方程的根
X=fsolve('eg103',[0.5,0.5]); Q=eg103(X)
X = 0.6354 0.3734 Q = 1.0e-009 *
0.2375 0.2957
Z=fzero('eg102',2)
Z= 2.0946
Eg 103 求解非线性方程组
x
y
0.6sin x 0.3cos 0.6cos x 0.3sin
y y
0在(0.5,0.5)附近的数值解 0
(1)建立函数文件eg103.m
function q=eg103(p)
x=p(1); y=p(2);
Eg 201 微分方程解析解
(1) 求解 du 1 u2 的通解 dt
用dsolve 求解: u=dsolve('Du=1+u^2','t') 结果为: u = tan(t+C1)
(2) 求解
d2y
dx
2
4
dy dx
29 y
0 的特解
y(0) 0, y(0) 15
用dsolve 求解:
• 【例2】 求一元二次方程a2 +bx+c=0的根。
• a=input('a=?');
• b=input('b=?');
• c=input('c=?');
• d=b*b-4*a*c;
• x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
• 将该程序以aa.m文件存盘,然后运行aa.m文件。
y1(0) 0, y2 (0) 1, y3(0) 1
(1)建立函数文件eg202.m
function dy = eg202(t,y)
dy = zeros(3,1); % a column vector
dy(1) = y(2) * y(3);
1
dy(2) = -y(1) * y(3);
0.8
dy(3) = -0.51 * y(1) * y(2);
特殊矩阵的建立:.
a=[ ]
产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零.
b=zeros(m,n) 产生一个m行、n列的零矩阵
c=ones(m,n) 产生一个m行、n列的元素 全为1的矩阵
d=eye(m,n) 产生一个m行、n列的单位矩阵
MATLAB (matrix1)
关系与逻辑运算
做法一:用fplot命令:
fplot('exp(2*x)+sin(3*x.^2)',[-1,2]); 做法二:先建立函数文件eg301.m function y=eg301(x) y=exp(2*x)+sin(3*x.^2); 在用fplot命令,或ezplot命令:
fplot('eg301',[-1,2]); 或ezplot('eg301',[-1,2]);
1、关系操作符
关系操作符 < <= > >= == ~=
说明 小于 小于或等于 大于 大于或等于 等于 不等于
控制流
MATLAB提供三种决策或控制流结构: for循环、while循环、if-else-end结构.
这些结构经常包含大量的MATLAB命令,故经常出现在 MATLAB程序中,而不是直接加在MATLAB提示符下.
用ezplot命令: ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]);
y
exp(x)+sin(x y) = 0 2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
-2
-1.5
-1
-0.5
0
0.5
x
Eg 301 二维图形的画法(二)
②画出参数方程 x cos3 t, y sin3 t 在 [ , ]上的图形
ans = -66.5556 25.6667 -18.7778 26.5556
Eg 102 求解非线性方程
f (x) x3 2x 5 0在x0 2附近的根 (1)建立函数文件eg102.m
function y = eg102(x) y = x.^3-2*x-5; (2)用fzero函数求根
MATLAB (fun)
数据的输入输出
二.数据的输入输出
• 1. input函数:用于向计算机输入一个参数。
• 调用格式: A=input(提示信息,选项);
• 注:‘s’选项,则允许用户输入一个字符串。
• 例如想输入一个人的姓名,可采用命令

xm=input('What''s your name:','s')
名称 正弦函数 余弦函数 正切函数 绝对值 最小值 开平方 自然对数 符号函数
函数os(x)
反余弦函数
atan(x)
反正切函数
max(x)
最大值
sum(x)
元素的总和
exp(x) 以 e 为底的指数
log10 (x) 以 10 为底的对数
fix(x)
取整
M文件
MATLAB的内部函数是有限的,有时为了研究某一个函数 的各种性态,需要为MATLAB定义新函数,为此必须编写函 数文件. 函数文件是文件名后缀为M的文件,这类文件的第一 行必须是一特殊字符function开始,格式为:
12
Eg 301 二维图形的画法(一)
(1)在 [0,2 ]上画出sin(x)与cos(x)的图形
用plot命令: x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,'r',x,z,'b*');
(2)符号函数(显函数、隐函数、参数方程)画图
①画出显函数 y x3 在 [-3,3] 上的图形
• 例如

A='Hello,MATLAB';

disp(A)
• 输出为: Hello,MATLAB
三、 矩 阵
1、矩阵的建立
逗号或空格用于分隔某一行的元素,分号用于区分不 同的行. 除了分号,在输入矩阵时,按Enter键也表示开始 一新行. 输入矩阵时,严格要求所有行有相同的列.
例 m=[1 2 3 4 ;5 6 7 8;9 10 11 12] p=[1 1 1 1 2222 3 3 3 3]
(1)MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果.
(2)“%” 后面所有文字为注释. (3) “...”表示续行.
数学函数
函数 sin(x) cos(x) tan(x) abs(x) min(x) sqrt(x) log(x) sign(x)
或switch I
case
otherwise
end
x2 1
例 设 f(x) 2x
x
3
x 1 0 x 1, 求f (2), f (0.5), f (1) x0
先建立M文件fun2.m定义函数f(x),再在 Matlab命令窗口输入fun2(2),fun2(0.5), fun2(-1)即 可。
1、for循环:允许一组命令以固定的和预定的次数重复
for x=array
{commands}
end 在for和end语句之间的命令串{commands}按数组(array)中 的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即 在第n次循环中,x=array(:,n)

对n=1,2,…,10,求xn=
相关文档
最新文档