一. 简单介绍
本文是我在学习相应的MATLAB时,所作的总结。当然,为了让此文更容易让初学者看懂,特地加入了自己的理解。写这篇文章的目的,首先,在记录下一天所学到的知识的同时,可以加深我对这方面知识的记忆深度。其次,在此书的基础上加入本人的理解,我想这样对于后面学习此方面知识的菜鸟,应该会有很大的帮助吧。
二. 数值极限
1. 题目*
设 fi(x)=1−cos2x2xsinx, f2(x)=sinxx ,有分析可知 limx→0f1(x)=limx→0f2(x) 试用数值法求这两个函数的极限 limx→0f1(x),limx→0f2(x)
2. 相关知识介绍
(1)数组的创建:y = linspace(a,b,n) %创建一个取值从a开始,至b结束,共有n个元素的数组
(2)显示函数:disp(X) %用于显示字符或者是数组。但是需要注意的是此空字符数组是不显示的
(3)统计符合条件的个数:a=sum(x);%列求和
a=sum(x,2);%行求和
a=sum(x(:));%矩阵求和
假定x为一个矩阵:
sum(x)以矩阵x的每一列为对象,对一列内的数字求和。
sum(x,2)以矩阵x的每一行为对象,对一行内的数字求和。
(4)对数坐标的绘画:
semilogx 与semilogy 的区别就是对谁取对数然后取代原来的x,y。
x = 0:.1:10;
semilogx(x,10.^x)图像是曲线
x = 0:.1:10;
semilogy(x,10.^x)图像是直线
(5)绘图要点
http://blog.csdn.net/wangcj625/article/details/6287735#comments[此博客细讲]
3.代码实现
k = logspace(0,14,15); %此处是创建一个数组,目的是实现自变量的
x = k*eps; %构造[eps,10*eps……,10^14*eps],这样就实现了自变量的序列
f1 = (1-cos(2.*x)./x./sin(x)/2); %创建好f1函数
f2 = sin(x)./x; %创建好f2函数
format short e %short小数点后保留四位,long保留15位
disp( [blanks[7], 'x',blanks[11], 'f1', blanks[11], 'f2') %只是显示自变量与函数的名字,用于更好的让读者认出下面的是什么数据
disp([x',f1',f2']) %此处的'符号是转置符号,即让行转置成列显示。
clf %用于绘图
n1 = sum(f1<10^-10) %此处用于消除不符合特定条件的值
subplot(2,1,1) %用于画出坐标
semilogx(x(n1+1:end),f1(n1+1:end),'b.-','LineWidth',3)) %画出正确线
axis([10^-20,1,0,1.1]) %用户将坐标系,扩展到合适的尺寸
grid on
title('f1')
subplot(2,1,2)
semilogx(x,f2,'b.-','LineWidth',3); %用户在此处画出f2图
axis([10^-20,1,0,1.1]);
title('f2');
gird on
shg
三.数值差分
1.题目
在区间[0,3]内,计算函数
f=4−(x−2)2
的两点前向差分和内点中心差分,并绘制相应的图形。
2.相关知识点
dF = diff(F) %一元函数f(x)的两点前向差分
dfn=fn+1−fn
gF = gradient(F) %一元函数f(x)的内点中心差分
gfn=fn+1−fn−12
[gx,gy] = gradient(F) %二元函数的内点中心差分
说明:需要注意的是
3.代码实现
clf %绘制图形
subplot(2,1,1) %开启第一个子坐标系
x = 0:h:3 %用于步长为h,且从0到3的值
F = 4-(x-2)^2 %设置好函数
h = 0.5 %用于设置好设置自变量的步长
dF = diff(F);
gF = gradient(F);
hold on %允许在此子图上绘制多个函数曲线
plot(x,f,'r.-')
x1 = x(1:end-1); %前向差分比原函数少一个采样点
plot(x1,df,'bo-'); %绘制曲线
legend('f','df'); %标出图例
text(1,3.4,'f3'),text(1.5,4.2,'f4') %标示相关说明
text(1.05,1.1,'df3= f4-f3');
axis([-1,4,-2,5]); %坐标系设置成适合的尺寸
xlabel('x')
box on
hold off
subplot(2,1,2)
plot(x,f,'r.-'); %在子图中画出相应的曲线
plot(x1,df,'bo-');
plot(x1,gf,'k*-');
legend('f','df','gf');
text(0,-0.5,'f1'),text(2.9,2.4,'f7') %通过标出相应的点,以此来显示出后面的本质特征
text(-0.45,2.2,'gf1= f2-f1'),text(3,-0.3,'gf7=f7-f6')
text(0.5,2.3,'f2'),text(1.5.4.2,'f4')
text(1.05,1.3,'gf3 = (f4-f2)/2')
axis([-1,4,-2,5])
xlable('x')
box on
hold off
shg
4.总结
对于上图中题目,我们可以总结出相应的解题模板
x = linspace(a,b,n) % 构建好适合的自变量数组
f1 =...... % 设置函数
disp([x',f1']) % 显示相应的数据,用于消除不适合数据(这一步可不写)
n1 = sum(f1...) % 计算相应的错误下标的最大值(这一步可不写)
clf % 开始绘图
subplot(k, m, z) % 绘制坐标
hold on % 允许在此子图上多次绘制曲线
plot( x,f1 ,'r.-') % 绘制相应的点
text(,,'') % 绘制相应的点
axis([,,,,]) % 设定好适合的坐标系
xlabel('x')
legend('','') % 用于标示出相应的曲线
box on % 释放由hold on 产生的控制
hold off
shg