MATLAB基础学习----数值的计算(1)

一. 简单介绍

本文是我在学习相应的MATLAB时,所作的总结。当然,为了让此文更容易让初学者看懂,特地加入了自己的理解。写这篇文章的目的,首先,在记录下一天所学到的知识的同时,可以加深我对这方面知识的记忆深度。其次,在此书的基础上加入本人的理解,我想这样对于后面学习此方面知识的菜鸟,应该会有很大的帮助吧。

二. 数值极限

1. 题目*

fi(x)=1cos2x2xsinx f2(x)=sinxx ,有分析可知 limx0f1(x)=limx0f2(x) 试用数值法求这两个函数的极限 limx0f1(x),limx0f2(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(x2)2 的两点前向差分和内点中心差分,并绘制相应的图形。

2.相关知识点
dF = diff(F) %一元函数f(x)的两点前向差分 dfn=fn+1fn
gF = gradient(F) %一元函数f(x)的内点中心差分 gfn=fn+1fn12
[gx,gy] = gradient(F) %二元函数的内点中心差分
说明:需要注意的是

3.代码实现

clf     %绘制图形
subplot(2,1,1)   %开启第一个子坐标系
x = 0:h:3    %用于步长为h,且从03的值
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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值