MATLAB入门教程之数值分析

2012-03-27 11:02:02来源: 互联网

数值分析

2.1微分 
diff函数用以演算一函数的微分项,相关的函数语法有下列4个:  
diff(f) 传回f对预设独立变数的一次微分值  
diff(f,'t') 传回f对独立变数t的一次微分值  
diff(f,n) 传回f对预设独立变数的n次微分值  
diff(f,'t',n) 传回f对独立变数t的n次微分值  
 
数值微分函数也是用diff,因此这个函数是靠输入的引数决定是以数值或是符号微分,如果引数为向量则执行数值微分,如果引数为符号表示式则执行符号微分。  
 
 先定义下列三个方程式,接著再演算其微分项:  
>>S1 = '6*x^3-4*x^2+b*x-5';  
>>S2 = 'sin(a)';  
>>S3 = '(1 - t^3)/(1 + t^4)';  
>>diff(S1)  
ans=18*x^2-8*x+b  
>>diff(S1,2)  
ans= 36*x-8  
>>diff(S1,'b')  
ans= x  
>>diff(S2)  
ans=  
cos(a)  
>>diff(S3)  
ans=-3*t^2/(1+t^4)-4*(1-t^3)/(1+t^4)^2*t^3  
>>simplify(diff(S3))  
ans= t^2*(-3+t^4-4*t)/(1+t^4)^2 
 
2.2积分 
 int函数用以演算一函数的积分项, 这个函数要找出一符号式 F 使得diff(F)=f。如果积
分式的解析式 (analytical form, closed form) 不存在的话或是MATLAB无法找到,则int 传回原输入的符号式。相关的函数语法有下列 4个:  
int(f) 传回f对预设独立变数的积分值  
int(f,'t') 传回f对独立变数t的积分值  
int(f,a,b) 传回f对预设独立变数的积分值,积分区间为[a,b],a和b为数值式  
int(f,'t',a,b) 传回f对独立变数t的积分值,积分区间为[a,b],a和b为数值式  
int(f,'m','n') 传回f对预设变数的积分值,积分区间为[m,n],m和n为符号式  
我们示范几个例子:  
>>S1 = '6*x^3-4*x^2+b*x-5';  
>>S2 = 'sin(a)';  
>>S3 = 'sqrt(x)'; 
>>int(S1)  
ans= 3/2*x^4-4/3*x^3+1/2*b*x^2-5*x  
>>int(S2)  
ans= -cos(a)  
>>int(S3)  
ans= 2/3*x^(3/2)  
>>int(S3,'a','b')  
ans= 2/3*b^(3/2)- 2/3*a^(3/2)  
>>int(S3,0.5,0.6)   
ans= 2/25*15^(1/2)-1/6*2^(1/2)  
>>numeric(int(S3,0.5,0.6)) % 使用numeric函数可以计算积分的数值  
ans= 0.0741 
 
2.3求解常微分方程式  
   MATLAB解常微分方程式的语法是dsolve('equation','condition'),其中equation代表常微分方程式即y'=g(x,y),且须以Dy代表一阶微分项y' D2y代表二阶微分项y'' ,   
condition则为初始条件。     
假设有以下三个一阶常微分方程式和其初始条件     
y'=3x2, y(2)=0.5    
y'=2.x.cos(y)2, y(0)=0.25      
y'=3y+exp(2x), y(0)=3    
对应上述常微分方程式的符号运算式为:      
>>soln_1 = dsolve('Dy = 3*x^2','y(2)=0.5')      
ans= x^3-7.500000000000000     
>>ezplot(soln_1,[2,4]) % 看看这个函数的长相     
 
>>soln_2 = dsolve('Dy = 2*x*cos(y)^2','y(0) = pi/4')      
ans= atan(x^2+1)    
>>soln_3 = dsolve('Dy = 3*y + exp(2*x)',' y(0) = 3')      
ans= -exp(2*x)+4*exp(3*x)   
 
2.4非线性方程式的实根  
    要求任一方程式的根有三步骤:   
    先定义方程式。要注意必须将方程式安排成 f(x)=0 的形态,例如一方程式为sin(x)=3,
则该方程式应表示为 f(x)=sin(x)-3。可以 m-file 定义方程式。  
    代入适当范围的 x, y(x) 值,将该函数的分布图画出,藉以了解该方程式的「长相」。 
    由图中决定y(x)在何处附近(x0)与 x 轴相交,以fzero的语法fzero('function',x0) 即可求出在 x0附近的根,其中 function 是先前已定义的函数名称。如果从函数分布图看出根不只一个,则须再代入另一个在根附近的 x0,再求出下一个根。 
 
    以下分别介绍几数个方程式,来说明如何求解它们的根。 
    例一、方程式为  
    sin(x)=0  
    我们知道上式的根有 ,求根方式如下:  
>> r=fzero('sin',3) % 因为sin(x)是内建函数,其名称为sin,因此无须定义它,选择 x=3 附近求根  
 r=3.1416  
>> r=fzero('sin',6) % 选择 x=6 附近求根  
r = 6.2832 
 
    例二、方程式为MATLAB 内建函数 humps,我们不须要知道这个方程式的形态为何,不过我们可以将它划出来,再找出根的位置。求根方式如下:  
>> x=linspace(-2,3);  
>> y=humps(x);  
>> plot(x,y), grid % 由图中可看出在0和1附近有二个根

   >> r=fzero('humps',1.2)  

r = 1.2995 
 
例三、方程式为y=x.^3-2*x-5  
    这个方程式其实是个多项式,我们说明除了用 roots 函数找出它的根外,也可以用这节介绍的方法求根,注意二者的解法及结果有所不同。求根方式如下:  
% m-function, f_1.m  
function y=f_1(x) % 定义 f_1.m 函数  
y=x.^3-2*x-5; 
>> x=linspace(-2,3);  
>> y=f_1(x);  
>> plot(x,y), grid % 由图中可看出在2和-1附近有二个根 
  
 
 >> r=fzero('f_1',2); % 决定在2附近的根  
r = 2.0946  
>> p=[1 0 -2 -5]  
>> r=roots(p) % 以求解多项式根方式验证  
r =  
2.0946  
-1.0473 + 1.1359i   
-1.0473 - 1.1359i  
 
2.5线性代数方程(组)求解
    我们习惯将上组方程式以矩阵方式表示如下  
     AX=B  
其中 A 为等式左边各方程式的系数项,X 为欲求解的未知项,B 代表等式右边之已知项 
要解上述的联立方程式,我们可以利用矩阵左除 \ 做运算,即是 X=A\B。  
    如果将原方程式改写成 XA=B 
其中 A 为等式左边各方程式的系数项,X 为欲求解的未知项,B 代表等式右边之已知项 
    注意上式的 X, B 已改写成列向量,A其实是前一个方程式中 A 的转置矩阵。上式的 X 可以矩阵右除 / 求解,即是 X=B/A。  
    若以反矩阵运算求解 AX=B, X=B,即是 X=inv(A)*B,或是改写成 XA=B, X=B,即是X=B*inv(A)。  
 
    我们直接以下面的例子来说明这三个运算的用法: 
 
>> A=[3 2 -1; -1 3 2; 1 -1 -1]; % 将等式的左边系数键入  
>> B=[10 5 -1]'; % 将等式右边之已知项键入,B要做转置  
>> X=A\B % 先以左除运算求解  
X = % 注意X为行向量  
-2  
5  
6  
>> C=A*X % 验算解是否正确  
C = % C=B  
 
10  
5  
-1 
>> A=A'; % 将A先做转置  
>> B=[10 5 -1];  
>> X=B/A % 以右除运算求解的结果亦同  
X = % 注意X为列向量  
10 5 -1  
>> X=B*inv(A); % 也可以反矩阵运算求解 

关键字:MATLAB  入门教程  数值分析

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0327/article_15463.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
MATLAB
入门教程
数值分析

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved