matlab科学计算8

上传人:命****币 文档编号:105777968 上传时间:2019-10-13 格式:PPT 页数:111 大小:7.94MB
返回 下载 相关 举报
matlab科学计算8_第1页
第1页 / 共111页
matlab科学计算8_第2页
第2页 / 共111页
matlab科学计算8_第3页
第3页 / 共111页
matlab科学计算8_第4页
第4页 / 共111页
matlab科学计算8_第5页
第5页 / 共111页
点击查看更多>>
资源描述

《matlab科学计算8》由会员分享,可在线阅读,更多相关《matlab科学计算8(111页珍藏版)》请在金锄头文库上搜索。

1、MATLAB 科学计算,作业:解线性方程组 (1)Seidel迭代法 :编写m文件,先判断迭代格式的收敛性,再求解,精度要求,(2)功能函数,函数文件(Seidel迭代),clear all A= ; B= ; x0=1 1 1 1 ; eps= ; y,n=gauseidel(A,B,x0,eps),function y,n=gauseidel(A,B,x0,eps) end,脚本文件,首先分析解的情况,并判断迭代是否收敛; 编写了通用功能函数sediel or Jacobi,clear all%写在主程序(脚本文件)最开始 lamdmax=max(abs(eig(M)%先分析收敛性 X0=

2、; X=M*X0+F; while norm(X-X0,inf)=1.0e-6% ?= X0=X; %? X=X0 X=M*X0+F;% ?X=M*X+F end,norm(x1-x0,inf),%?norm(x1-x0),For i=1:1000%可能未达精度,但因超过计算次数致使程序终止 x=M*x0+F; end,L,U有误 用X0=AB做初值,没有给出运行结果 运行结果和程序不对应 编程困难解决办法:找资源,找帮手,第7章 解线性和非线性方程组,符号求解+数值求解 对多项式方程(组),可求得所有解,包括复根。 对非多项式方程(组),给出搜索到的第一个解。,6、vpasolve,6、vp

3、asolve,解方程 f(x)=0,格式:兼具符号求解器solve和 数值求解器fsolve的格式特点 syms x a b%定义所有符号变量包括自变量和参变量 eqn=f(x)%待解方程f(x)=0的左端表达式 s=vpasolve(eq, var, x0),x0初值,一个数或一个区间(可以) 可以缺省,s=vpasolve(eq, var, x0),eq, var, s同solve,解方程组,6、vpasolve,F(X)=0,syms x a b c eq1=f1 () ; eq2=f2 (); S=vpasolve(eq1,eq2,., var1, var2, ,x0 ),6、vpas

4、olve,格式,F(X)=0,x0初值,列向量,每个元素是对应自变量的初值; 两个列向量构成的矩阵,每行是对应自变量的搜索区间。 可以缺省,S=vpasolve(eq1,eq2,., var1, var2, ,x0 ),eqn, varn, s 同solve,x1,x2,. = vpasolve(eq1,eq2,var1,var2,x0) 按照var1,var2的顺序输出解, 并依次命名为x1,x2,.,其他格式,例如 只要实数解,令x0=-inf,inf; 只要非负解,令x0=0,inf,通过改变初始条件求得所要的解:,6、vpasolve,例10 解方程,s=vpasolve(eq, va

5、r, x0),例11,S=vpasolve(eq1,eq2,., var1, var2, ,x0 ),小结,roots 求多项式方程f(x)=0的全部根,包括实根和复根。 solve 突出功能是求解多项式方程和方程组全部解析解。,fzero 求单变量非线性方程的实根,一次求一个根。必须给初值。 fsolve 求非线性方程(组)的实数或复数解,一次返回一个解。必须给初值。 vpasolve 对多项式方程,可求得所有解包括复根。对非多项式方程(组)给出一个解。可不给初值。,小结,MuPAD Notebook,?,用MuPAD Notebook求解,7.3.2非线性方程(组)求解的MATLAB实现,

6、7.3 非线性方程(组)的求解,二、数值解法的MATLAB程序,MATLAB程序,宋叶志,贾东永 编著,MATLAB数值分析与应用,北京:机械工业出版社,2009年7月第1版 随书光盘登录202.113.6.235,有视频讲解,例 Newton基本格式求解,(1)Newton迭代法基本格式,命名为new_ton.m function x,n,data=new_ton(x0,tol) if nargin=1%如果用户只给了x0,没有指定tol,程序使用缺省值 tol=1e-10;%误差限 end Nmax=1000;%设置最大迭代次数 n=1;%n为计算次数 x1=x0-inv(df1(x0)*

7、f1(x0);%x0是用户输入的迭代初值 while (norm(x1-x0)tol),(2)定义待解非线性方程组 function y=f1(x) y(1)=x(1)*x(1)-2*x(1)-x(2)+0.5; y(2)=x(1)2+4*x(2)*x(2)-4; y=y(1);y(2); 命名为f1.m,(3)定义非线性方程组的Jacobi矩阵 function y=df1(x) y(1,1)=2*x(1)-2; y(1,2)=-1; y(2,1)=2*x(1); y(2,2)=8*x(2); y=y(1,1) y(1,2);y(2,1) y(2,2); 命名为df1.m,(4)编写脚本文件

8、,解方程组 clear all clc x0=1;1; x,n,data=new_ton(x0); x n 命名为newton_main.m,迭代计算编程注意,1、最好在脚本文件最开始加上clear all 。 2、设置最大迭代次数,防止不收敛的时候进入无穷循环状态。必要时可以使用Ctrl+C强行终止运行。 3、输出信息中最好包括exitflag,以便知晓终止运行的原因,是收敛结束,还是超出最大迭代计算次数而结束。,第8章 数据的可视化,绘 图,直观反映数据变化趋势 辅助模型选择 辅助分析: 方程求解区间,例 某化学反应实验所得生成物的浓度随时间的变化数据,选择合适的数学模型,例 某化学反应实

9、验所得生成物的浓度随时间的变化数据,选择合适的数学模型,+,8.1 平面图,8.1 平面图,一、单条曲线的绘制,1、功能函数plot 2、PLOTS工具箱,向量y相对于向量x的线型图 s:字符串,如 linestyle (线型) color (颜色) labelstyle (标记点形式),plot(x, y, s),1、功能函数,Linestyle,符号与线型对应表,color,字母与颜色对应表(不分大小写),labelstyle,符号与标记点对应表,x=0:pi/16:4*pi; y=cos(x); plot(x, y, -ro),例 绘制一条余弦曲线,线型,颜色,标记点类型,2、PLOTS

10、工具箱,一、单条曲线的绘制,Workspace中 双击因变量y,选中数据点击PLOTS,默认:单元格序号是自变量 y是因变量,双击,选中曲线,选择数据,点击Refresh Data,保存,二、图形的编辑,1、figure窗口,2、功能函数,1、figure窗口,plot browser 绘图浏览器,首先找到,列出所有图形对象,1、figure窗口,Title (轴名) Label (标签)、 Font name(字体),font size(字号), weight(加粗), angle(倾斜) Limits(刻度标签范围), Ticks(刻度间距) Scale(线性line,还是对数log坐标)

11、 Reverse(反向) Grids(网格) Box(边框) Colors(轴、刻度标签、网格、边框的颜色图形区域的底色),Property Editor - Axes:,Plot type(各种类型图, bar柱状图、area饼状图, stairs阶梯图,stem茎干图) Data (数据源); Line(线型、粗细、颜色); Marker(数据点标志、大小、背景颜色和边框颜色) Display name(曲线命名,图例中的名称),1、figure窗口,Property Editor - Lineseries:,图例位置、边框颜色、底色、字号和字体 多个图例的摆放方式,垂直或水平。,1、fi

12、gure窗口,Property Editor - Legend:,定义m为上标:m 定义m为下标:_m,figure name(图形窗口名称,将显示在图形窗口) figure color(图形窗口底色),1、figure窗口,Property Editor - Figure:,2、功能函数,二、图形的编辑,plot(x,y,linestyle and color and labelstyle,linewidth,value, markeredgecolor,value, markerfacecolor,value, markersize,value,) 定义一条图线的宽窄、 标记点颜色、大小等

13、。,title(图名) xlabel(轴名) ylabel(轴名) legend (图例名称),2、功能函数,图形窗口中的公式编辑,LaTex 出版界的重要排版语言,将MATLAB符号运算结果s转化成LaTeX命令格式 copy,1、使用函数latex( s ),图形窗口中的公式编辑,写入 $ LaTeX命令$,2、在 textbox, title, xlabel, legend,3、属性选择Latex,图形窗口中的公式编辑,例 在图形窗口输入公式,1、命令窗口输入,syms a b x; s=a/x+b; latex(s),输出 b + fracax,$ b + fracax$,2、创建te

14、xtbox,3、textbox属性选择Latex,LaTex 使用方法,( LaTeX命令) $ LaTeX命令$,其他命令格式,例1 绘制如下函数曲线, 并标注图名、轴名、图例,给出函数表达式。,三、多条曲线的绘制,1、plot函数 plot(x1,y1,x2,y2,),2、hold命令,3、Figure窗口add data,2、命令hold,hold off 默认状态。在绘图之前删掉已有图形。 hold on 保留已有图形在窗口中,并将此后绘制的所有图形添加到当前图形窗口。,x=0:pi/16:2*pi ; y1=cos(x) ;y2=sin(x) ; y3=cos(x)+sin(x) ;

15、 plot(x,y1) hold on plot(x,y2) plot(x,y3),只写一次,画第三条曲线,3、Figure窗口,三、多条曲线的绘制,plot browser中 点击曲线名称 Add Data按钮,添加新的绘图数据,(1)plot(x1,y1,x2,y2) (2)hold on (3)Figure窗口中add data,例2 绘制如下函数曲线, 并标注图名、轴名、图例,给出函数表达式。,两个函数值数量级差异较大,四、双纵轴图,plotyy,功能:绘制因变量数量级差异很大的两组数据图,格式:plotyy(x1,y1,x2,y2),Plotting with Two Y-Axes,

16、例3 绘制完整的曲线图,plotyy(x1, y1, x2, y2),五、双横双纵轴图,Multiple X- and Y-Axes,两个函数定义域差异较大,例4 绘制完整的曲线图,clear all x1=0:pi/10:2*pi; y1=sin(x1); x2=-2*pi:pi/10:0; y2=10*cos(x2) ; plot(x1,y1) %绘制第一条曲线 h1=gca;% gca是matlab中表示当前轴的句柄 h2=axes(Position,get(h1,Position); %定义第二套坐标,位置同 第一套坐标 plot(x2,y2) %绘制第二条曲线 set(h2,Xaxislocation,top) %规定第二个

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号