matlab实现数值计算功能源程序(个人整理)

合集下载

Matlab中常用的数值计算方法

Matlab中常用的数值计算方法

Matlab中常用的数值计算方法数值计算是现代科学和工程领域中的一个重要问题。

Matlab是一种用于数值计算和科学计算的高级编程语言和环境,具有强大的数值计算功能。

本文将介绍Matlab中常用的数值计算方法,包括数值积分、数值解微分方程、非线性方程求解和线性方程组求解等。

一、数值积分数值积分是通过数值方法来近似计算函数的定积分。

在Matlab中,常用的数值积分函数是'quad'和'quadl'。

'quad'函数可以用于计算定积分,而'quadl'函数可以用于计算无穷积分。

下面是一个使用'quad'函数计算定积分的例子。

假设我们想计算函数f(x) = x^2在区间[0, 1]上的定积分。

我们可以使用如下的Matlab代码:```f = @(x) x^2;integral = quad(f, 0, 1);disp(integral);```运行这段代码后,我们可以得到定积分的近似值,即1/3。

二、数值解微分方程微分方程是描述自然界各种变化规律的数学方程。

在科学研究和工程应用中,常常需要求解微分方程的数值解。

在Matlab中,可以使用'ode45'函数来求解常微分方程的数值解。

'ode45'函数是采用基于Runge-Kutta方法的一种数值解法。

下面是一个使用'ode45'函数求解常微分方程的例子。

假设我们想求解一阶常微分方程dy/dx = 2*x,初始条件为y(0) = 1。

我们可以使用如下的Matlab代码:```fun = @(x, y) 2*x;[x, y] = ode45(fun, [0, 1], 1);plot(x, y);```运行这段代码后,我们可以得到微分方程的数值解,并绘制其图像。

三、非线性方程求解非线性方程是指方程中包含非线性项的方程。

在很多实际问题中,我们需要求解非线性方程的根。

如何使用MATLAB进行数值计算

如何使用MATLAB进行数值计算

如何使用MATLAB进行数值计算使用MATLAB进行数值计算一、引言数值计算是现代科学与工程领域中不可或缺的一部分,它能够解决许多实际问题,包括求解方程、优化问题和模拟实验等。

而MATLAB作为一种功能强大的数值计算软件,被广泛应用于各个领域。

本文将介绍如何使用MATLAB进行数值计算,并结合实例进行说明。

二、MATLAB基础首先,我们需要了解MATLAB的基本操作和语法,以便能够熟练运用。

MATLAB使用矩阵和数组来存储和处理数据,因此,熟悉矩阵和数组操作是非常重要的。

MATLAB中的矩阵和数组是通过方括号来定义的,例如:A = [1 2 3; 4 5 6; 7 8 9]表示一个3x3的矩阵A,其中每个元素由空格或分号隔开。

我们可以使用括号或索引来访问矩阵中的元素。

例如,要访问矩阵A的第二行第三列的元素,可以使用A(2,3)。

MATLAB提供了大量内置的数学函数,包括算术运算、三角函数、指数和对数函数等。

这些函数可以直接应用于矩阵和数组,简化了数值计算的过程。

三、方程求解方程求解是数值计算中的一个重要任务,MATLAB提供了多种方法来求解方程,包括代数方法和数值方法。

1. 代数方法对于一些简单的方程,例如一元一次方程或二次方程,可以直接使用MATLAB内置的解方程函数进行求解。

例如,对于一元一次方程ax + b = 0,可以使用solve函数来求解。

代码示例:syms x;eqn = a*x + b == 0;sol = solve(eqn, x);其中,syms x;指定x为符号变量,eqn为方程表达式,sol为方程的解。

2. 数值方法对于一些复杂的方程,无法用解析方法求解。

这时,可以使用数值方法来近似求解。

MATLAB提供了多种数值求解方法,包括二分法、牛顿法和割线法等。

这些方法可以通过迭代逼近的方式求解方程的根。

代码示例:f = @(x) x^2 - 4;x0 = 2;x = fzero(f, x0);其中,f为方程的表达式,x0为初始猜测值,x为方程的根。

MATLAB数值计算功能

MATLAB数值计算功能

MATLAB数值计算功能下面将详细介绍MATLAB数值计算功能的一些主要方面:1. 矩阵运算和线性代数:MATLAB具有强大的矩阵操作功能,可以直接对矩阵进行加减乘除、求逆矩阵、求特征值等运算。

MATLAB中的线性方程组求解函数(如`linsolve`和`inv`)可以更轻松地解决各种线性代数问题。

2. 数值积分和微分:MATLAB提供了多种数值积分和微分函数,用于求解一元和多元函数的定积分、不定积分、数值微分和数值求导。

例如,可以使用`integral`函数计算函数的定积分,并使用`diff`函数计算函数的导数或`gradient`函数计算梯度。

3. 方程求解:MATLAB提供了一系列函数,用于解决非线性方程和代数方程组。

这些函数包括`fsolve`(用于求解非线性方程),`roots`(用于求解多项式方程的根)和`solve`(用于求解代数方程组)等。

4. 曲线拟合和数据拟合:MATLAB提供了多个函数用于曲线拟合和数据拟合,包括`polyfit`(多项式拟合),`lsqcurvefit`(非线性最小二乘曲线拟合),`interp1`(一维插值)和`griddata`(多维数据插值)等。

这些函数可以帮助用户找到数据之间的模式和关系。

5. 常微分方程(ODE)求解:MATLAB提供了用于求解常微分方程组(ODE)的函数,既可以用传统的数值方法求解,也可以用符号计算求解。

用户可以使用`ode45`、`ode23`或`ode15s`等函数来求解初值问题或边界值问题。

6. 线性最小二乘拟合:MATLAB中的`lsqnonlin`函数可以用于线性最小二乘问题的求解,包括曲线拟合、数据拟合、参数估计等。

用户可以使用该函数来找到使得拟合曲线和观测数据之间残差最小的参数。

7. 数值优化:MATLAB包含一系列优化函数,可以求解常规优化问题、无约束优化问题、约束优化问题等。

用户可以使用函数`fminsearch`、`fminunc`和`fmincon`等来找到函数的最小值或最大值。

在Matlab中实现数值计算与优化算法

在Matlab中实现数值计算与优化算法

在Matlab中实现数值计算与优化算法数值计算与优化算法在工程和科学领域中扮演着重要的角色。

而Matlab作为一种强大的数值计算和数据分析工具,提供了丰富的函数和工具箱,可以方便地实现各种数值计算和优化算法。

本文将介绍在Matlab中实现数值计算和优化算法的一些常用方法和技巧。

1. 数值计算基础在进行数值计算之前,首先需要了解一些数值计算的基本概念和方法。

Matlab 提供了丰富的数学函数,例如矩阵运算、符号计算等。

通过使用这些函数,我们可以进行矩阵运算、数值积分、微分、微分方程求解等操作。

2. 数值计算方法在实际的数值计算中,我们经常需要解决一些复杂的问题,例如求解非线性方程、最小化函数、解线性方程组等。

Matlab提供了多种数值计算方法,例如牛顿法、拟牛顿法、全局优化算法等。

这些方法可以帮助我们高效地解决各种数值计算问题。

3. 数值优化算法数值优化是指在给定约束条件下求解最优解的问题。

在实际应用中,数值优化算法经常被用于解决一些优化问题,例如最小二乘法、线性规划、非线性规划等。

Matlab提供了多个优化工具箱,例如Optimization Toolbox和Global Optimization Toolbox,可以帮助我们实现各种数值优化算法。

4. 遗传算法遗传算法是一种模拟自然选择和遗传机制的优化算法。

在遗传算法中,通过适应度评价、选择、交叉和变异等操作,逐步搜索解空间,最终找到最优解。

Matlab 提供了一个遗传算法优化工具箱,可以方便地实现遗传算法。

5. 粒子群优化算法粒子群优化算法是一种模拟鸟群觅食行为的优化算法。

在粒子群优化算法中,通过模拟粒子在解空间中的运动,寻找最优解。

Matlab提供了一个粒子群优化工具箱,可以方便地实现粒子群优化算法。

6. 约束优化算法约束优化是指在给定约束条件下求解最优解的问题。

在实际应用中,约束优化经常被用于解决一些复杂的问题,例如最小化函数、最大化函数、多目标优化等。

如何在MATLAB中进行数值计算

如何在MATLAB中进行数值计算

如何在MATLAB中进行数值计算在科学计算领域,MATLAB被广泛应用于数值计算,它提供了强大而简便的工具和函数,可以帮助科学家们进行复杂的数学计算和数据分析。

本文将介绍如何在MATLAB中进行数值计算,并探讨一些常用的技巧和技术。

MATLAB中的数值计算是通过矩阵和向量运算来实现的,因此熟悉矩阵运算和向量操作是使用MATLAB进行数值计算的关键。

首先,让我们来看看如何定义和操作矩阵和向量。

在MATLAB中,可以使用矩阵和向量来存储和操作多个数值。

矩阵是一个二维数组,而向量是一个一维数组。

通过使用方括号和逗号来定义矩阵和向量。

例如,以下是一个3x3的矩阵的定义:A = [1, 2, 3; 4, 5, 6; 7, 8, 9];可以通过使用A(i, j)的形式来访问矩阵中的元素,其中i和j分别表示行和列的索引。

例如,要访问第二行第三列的元素,可以使用A(2, 3)。

向量可以通过类似的方式定义,只需要使用一个维度。

例如,以下是一个包含5个元素的行向量的定义:v = [1, 2, 3, 4, 5];可以使用v(i)的形式来访问向量中的元素,其中i表示索引。

例如,要访问第四个元素,可以使用v(4)。

在进行数值计算时,通常需要进行一些基本的运算,如加法、减法、乘法和除法。

在MATLAB中,这些运算可以直接应用于矩阵和向量。

加法运算可以使用加号来实现。

例如,要将两个矩阵A和B相加,可以使用以下代码:C = A + B;减法运算可以使用减号来实现。

例如,要将矩阵A减去矩阵B,可以使用以下代码:D = A - B;乘法运算可以使用乘号来实现。

例如,要将矩阵A乘以矩阵B,可以使用以下代码:E = A * B;除法运算可以使用除号来实现。

例如,要将矩阵A除以矩阵B,可以使用以下代码:F = A / B;除了基本的运算,MATLAB还提供了很多其他的函数和工具箱,可以帮助进行更复杂的数值计算和数据分析。

例如,MATLAB提供了一些常用的数学函数,如幂函数、指数函数、对数函数、三角函数等等。

MATLAB数值计算教程

MATLAB数值计算教程

MATLAB数值计算教程第一章:MATLAB入门1.1 MATLAB简介MATLAB(Matrix Laboratory)是一款强大的数值计算软件,广泛用于工程、科学和金融领域。

它的特点是简单易用、高效快速,并且拥有丰富的工具箱和函数库。

1.2 MATLAB环境搭建要使用MATLAB进行数值计算,首先需要安装MATLAB软件,并进行必要的配置。

通过官方网站下载安装程序,根据提示进行安装即可。

安装完成后,打开MATLAB环境,即可开始使用。

1.3 MATLAB基本操作在MATLAB环境中,可以通过命令行窗口输入和执行命令,也可以使用脚本文件进行批量处理。

常用的基本操作包括变量赋值、算术运算、函数调用等。

例如,使用"="符号赋值变量,使用"+"、"-"、"*"、"/"等符号进行算术运算。

第二章:向量和矩阵操作2.1 向量操作在MATLAB中,向量是一种特殊的矩阵,可以通过一组有序的元素构成。

向量可以进行基本的算术运算,如加法、减法、乘法、除法,还可以进行向量的点积、叉积等操作。

可以使用内置函数和运算符来实现。

2.2 矩阵操作矩阵是MATLAB中最常用的数据结构之一,使用矩阵可以进行多个向量的组合和运算。

可以进行矩阵的加法、减法、乘法、除法等操作,也可以进行矩阵的转置、求逆、求特征值等操作。

MATLAB提供了大量的函数和工具箱来支持矩阵的操作。

第三章:数值计算方法3.1 数值积分数值积分是一种用数值方法计算定积分的方法。

在MATLAB 中,可以使用内置函数来进行数值积分,如trapz函数和quad函数。

也可以使用Simpson法则、复合辛普森法等方法实现数值积分。

3.2 数值微分数值微分是一种用数值方法计算导数的方法。

在MATLAB中,可以使用内置函数进行数值微分,如diff函数和gradient函数。

如何在MATLAB中进行数值计算

如何在MATLAB中进行数值计算

如何在MATLAB中进行数值计算1.基本数学操作:-加法、减法、乘法、除法:使用+、-、*、/操作符进行基本算术运算。

-幂运算:使用^或.^(点乘)操作符进行幂运算。

- 开平方/立方:可以使用sqrt(或power(函数进行开平方和立方运算。

2.矩阵操作:- 创建矩阵:可以使用矩阵构造函数如zeros(、ones(、rand(等创建矩阵。

- 矩阵运算:使用*操作符进行矩阵相乘,使用transpose(函数进行矩阵转置。

- 矩阵求逆和求解线性方程组:使用inv(函数求矩阵的逆,使用\操作符求解线性方程组。

3.数值积分和微分:- 数值积分:使用integral(函数进行数值积分。

可以指定积分函数、积分上下限和积分方法。

- 数值微分:使用diff(函数进行数值微分。

可以指定微分函数和微分变量。

4.解方程:- 一元方程:使用solve(函数可以解一元方程。

该函数会尝试找到方程的精确解。

- 非线性方程组:使用fsolve(函数可以求解非线性方程组。

需要提供初始值来开始求解过程。

-数值方法:可以使用牛顿法、二分法等数学方法来求解方程。

可以自定义函数来实现这些方法。

5.统计分析:- 统计函数:MATLAB提供了丰富的统计分析函数,如mean(、std(、var(等用于计算均值、标准差、方差等统计量。

- 直方图和密度估计:使用histogram(函数可以绘制直方图,并使用ksdensity(函数进行核密度估计。

- 假设检验:使用ttest(或anova(函数可以进行假设检验,用于比较多组数据之间的差异。

6.数值优化:- 非线性最小化:使用fminunc(函数可以进行非线性最小化。

需要提供目标函数和初始点。

- 线性规划:使用linprog(函数可以进行线性规划。

需要提供目标函数和限制条件。

- 整数规划:使用intlinprog(函数可以进行整数规划。

需要提供目标函数和整数约束。

7.拟合曲线:- 线性拟合:使用polyfit(函数进行线性拟合。

(完整word版)用MATLAB实现计算器程序源代码(word文档良心出品)

(完整word版)用MATLAB实现计算器程序源代码(word文档良心出品)

function varargout = caculator(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @caculator_OpeningFcn, ...'gui_OutputFcn', @caculator_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});endfunction caculator_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;set(handles.edit1,'string','0');set(handles.edit5,'string','0');guidata(hObject, handles);function varargout = caculator_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)function edit1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit2_Callback(hObject, eventdata, handles)function edit2_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit3_Callback(hObject, eventdata, handles)function edit3_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction pushbutton1_Callback(hObject, eventdata, handles)handles.num1=strcat(get(handles.edit1,'string'),'+');set(handles.edit1,'string',handles.num1);guidata(hObject,handles);function pushbutton2_Callback(hObject, eventdata, handles) handles.num2=strcat(get(handles.edit1,'string'),'-');set(handles.edit1,'string',handles.num2);guidata(hObject,handles);function pushbutton3_Callback(hObject, eventdata, handles) handles.num3=strcat(get(handles.edit1,'string'),'*');set(handles.edit1,'string',handles.num3);guidata(hObject,handles);function pushbutton4_Callback(hObject, eventdata, handles) handles.num4=strcat(get(handles.edit1,'string'),'/');set(handles.edit1,'string',handles.num4);guidata(hObject,handles);function pushbutton_1_Callback(hObject, eventdata, handles) handles.shu1=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu1=strcat(handles.yuanshu,handles.shu1);if length(handles.shu1)<2;elseif (length(handles.shu1)>=2)&&(handles.shu1(end-1)==')')&& (handles.shu1(1)=='l')temp=handles.shu1(end);handles.shu1(end)=handles.shu1(end-1);handles.shu1(end-1)=temp;endset(handles.edit1,'string',handles.shu1);guidata(hObject, handles);function pushbutton_2_Callback(hObject, eventdata, handles) handles.shu2=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu2=strcat(handles.yuanshu,handles.shu2);if length(handles.shu2)<2;elseif (length(handles.shu2)>=2)&&(handles.shu2(end-1)==')')&& (handles.shu2(1)=='l')temp=handles.shu2(end);handles.shu2(end)=handles.shu2(end-1);handles.shu2(end-1)=temp;endset(handles.edit1,'string',handles.shu2);guidata(hObject, handles);function pushbutton_4_Callback(hObject, eventdata, handles) handles.shu4=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu4=strcat(handles.yuanshu,handles.shu4);if length(handles.shu4)<2;elseif (length(handles.shu4)>=2)&&(handles.shu4(end-1)==')')&& (handles.shu4(1)=='l')temp=handles.shu4(end);handles.shu4(end)=handles.shu4(end-1);handles.shu4(end-1)=temp;endset(handles.edit1,'string',handles.shu4);guidata(hObject, handles);function pushbutton_3_Callback(hObject, eventdata, handles) handles.shu3=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu3=strcat(handles.yuanshu,handles.shu3);if length(handles.shu3)<2;elseif (length(handles.shu3)>=2)&&(handles.shu3(end-1)==')')&& (handles.shu3(1)=='l')temp=handles.shu3(end);handles.shu3(end)=handles.shu3(end-1);handles.shu3(end-1)=temp;endset(handles.edit1,'string',handles.shu3);guidata(hObject, handles);function pushbutton_5_Callback(hObject, eventdata, handles) handles.shu5=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu5=strcat(handles.yuanshu,handles.shu5);if length(handles.shu5)<2;elseif (length(handles.shu5)>=2)&&(handles.shu5(end-1)==')')&& (handles.shu5(1)=='l')temp=handles.shu5(end);handles.shu5(end)=handles.shu5(end-1);handles.shu5(end-1)=temp;endset(handles.edit1,'string',handles.shu5);guidata(hObject, handles);function pushbutton_9_Callback(hObject, eventdata, handles) handles.shu9=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu9=strcat(handles.yuanshu,handles.shu9);if length(handles.shu9)<2;elseif (length(handles.shu9)>=2)&&(handles.shu9(end-1)==')')&& (handles.shu9(1)=='l')temp=handles.shu9(end);handles.shu9(end)=handles.shu9(end-1);handles.shu9(end-1)=temp;endset(handles.edit1,'string',handles.shu9);guidata(hObject, handles);function pushbutton_7_Callback(hObject, eventdata, handles) handles.shu7=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu7=strcat(handles.yuanshu,handles.shu7);if length(handles.shu7)<2;elseif (length(handles.shu7)>=2)&&(handles.shu7(end-1)==')')&& (handles.shu7(1)=='l')temp=handles.shu7(end);handles.shu7(end)=handles.shu7(end-1);handles.shu7(end-1)=temp;endset(handles.edit1,'string',handles.shu7);guidata(hObject, handles);function pushbutton_8_Callback(hObject, eventdata, handles) handles.shu8=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu8=strcat(handles.yuanshu,handles.shu8);if length(handles.shu8)<2;elseif (length(handles.shu8)>=2)&&(handles.shu8(end-1)==')')&& (handles.shu8(1)=='l')temp=handles.shu8(end);handles.shu8(end)=handles.shu8(end-1);handles.shu8(end-1)=temp;endset(handles.edit1,'string',handles.shu8);guidata(hObject, handles);function pushbutton_6_Callback(hObject, eventdata, handles) handles.shu6=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu6=strcat(handles.yuanshu,handles.shu6);if length(handles.shu6)<2;elseif (length(handles.shu6)>=2)&&(handles.shu6(end-1)==')')&& (handles.shu6(1)=='l')temp=handles.shu6(end);handles.shu6(end)=handles.shu6(end-1);handles.shu6(end-1)=temp;endset(handles.edit1,'string',handles.shu6);guidata(hObject, handles);function pushbutton18_Callback(hObject, eventdata, handles) handles.jieguo=get(handles.edit1,'string');handles.jieguo=strcat('=',handles.jieguo);eval(['handles.result''1' handles.jieguo]);set(handles.edit5,'string',num2str(handles.result1));guidata(hObject,handles);function pushbutton_0_Callback(hObject, eventdata, handles) handles.shu0=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu0=strcat(handles.yuanshu,handles.shu0);if length(handles.shu0)<2;elseif (length(handles.shu0)>=2)&&(handles.shu0(end-1)==')')&& (handles.shu0(1)=='l')temp=handles.shu0(end);handles.shu0(end)=handles.shu0(end-1);handles.shu0(end-1)=temp;endset(handles.edit1,'string',handles.shu0);guidata(hObject, handles);function pushbutton20_Callback(hObject, eventdata, handles) handles.shu10=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');handles.shu10=strcat(handles.yuanshu,handles.shu10);set(handles.edit1,'string',handles.shu10);guidata(hObject, handles);function pushbutton21_Callback(hObject, eventdata, handles) function edit5_Callback(hObject, eventdata, handles)function edit5_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction pushbutton22_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.fanhao=strcat('-(',handles.yuanshu,')');set(handles.edit1,'string',handles.fanhao);guidata(hObject, handles);function pushbutton23_Callback(hObject, eventdata, handles)set(handles.edit1,'string','0');set(handles.edit5,'string','0');guidata(hObject, handles);function pushbutton24_Callback(hObject, eventdata, handles)result=questdlg('ÕæµÄÒªÍ˳ö£¿','Í˳öÈ·ÈÏ','È·¶¨','È¡Ïû','È¡Ïû'); if result=='È·¶¨', close(gcf); endfunction pushbutton25_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.sin=strcat('sin(',handles.yuanshu,')');set(handles.edit1,'string',handles.sin);guidata(hObject, handles);function pushbutton26_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.cos=strcat('cos(',handles.yuanshu,')');set(handles.edit1,'string',handles.cos);guidata(hObject, handles);function pushbutton27_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.tan=strcat('tan(',handles.yuanshu,')');set(handles.edit1,'string',handles.tan);guidata(hObject, handles);function pushbutton28_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.ln=strcat('reallog(',handles.yuanshu,')');set(handles.edit1,'string',handles.ln);guidata(hObject, handles);function pushbutton29_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.log=strcat('log',handles.yuanshu,'()');set(handles.edit1,'string',handles.log);guidata(hObject, handles);function pushbutton30_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.daoshu=strcat('1/(',handles.yuanshu,')');set(handles.edit1,'string',handles.daoshu);guidata(hObject, handles);function pushbutton31_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.sqrt=strcat('sqrt(',handles.yuanshu,')');set(handles.edit1,'string',handles.sqrt);guidata(hObject, handles);function pushbutton32_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.pingfang=strcat('(',handles.yuanshu,')^2');set(handles.edit1,'string',handles.pingfang);guidata(hObject, handles);function pushbutton33_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.ncifang=strcat('(',handles.yuanshu,')^N');set(handles.edit1,'string',handles.ncifang);guidata(hObject, handles);function pushbutton35_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.kuohao=strcat('(',handles.yuanshu,')');set(handles.edit1,'string',handles.kuohao);guidata(hObject, handles);function pushbutton36_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.yuanshu=handles.yuanshu(1:(end-1));if length(handles.yuanshu)<1handles.yuanshu='0';endset(handles.edit1,'string',handles.yuanshu);guidata(hObject, handles);% --- Executes on button press in pushbutton37.function pushbutton37_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.exp=strcat('exp(',handles.yuanshu,')');set(handles.edit1,'string',handles.exp);guidata(hObject, handles);% --- Executes when user attempts to close figure1.function figure1_CloseRequestFcn(hObject, eventdata, handles)% hObject handle to figure1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hint: delete(hObject) closes the figuredelete(hObject);%--------------------------------------------------------------------function Untitled_14_Callback(hObject, eventdata, handles)% hObject handle to Untitled_14 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_15_Callback(hObject, eventdata, handles)set(gcf,'color','red')% hObject handle to Untitled_15 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_16_Callback(hObject, eventdata, handles)set(gcf,'color','blue')% hObject handle to Untitled_16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_17_Callback(hObject, eventdata, handles)set(gcf,'color','green')% hObject handle to Untitled_17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_18_Callback(hObject, eventdata, handles)set(gcf,'color','black')% hObject handle to Untitled_18 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_19_Callback(hObject, eventdata, handles)set(gcf,'color','yellow')% hObject handle to Untitled_19 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_20_Callback(hObject, eventdata, handles)set(gcf,'color','m')% hObject handle to Untitled_20 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function Untitled_1_Callback(hObject, eventdata, handles)function Untitled_2_Callback(hObject, eventdata, handles)function Untitled_3_Callback(hObject, eventdata, handles)function Untitled_4_Callback(hObject, eventdata, handles)function Untitled_4_CreateFcn(hObject, eventdata, handles)function Untitled_5_Callback(hObject, eventdata, handles)function Untitled_6_Callback(hObject, eventdata, handles)。

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

matlab数值计算功能
1,基础运算
(1)多项式的创建与表达
将多项式(x-6)(x-3)(x-8)表示为系数形式
a=[6 3 8] % 写成根矢量
pa=poly(a)% 求出系数矢量
ppa=poly2sym(pa,'x') % 表示成符号形式
ezplot(ppa,[-50,50])
求3介方阵A的特征多项式
a=[6 2 4;7 5 6;1 3 6 ];
pa=poly(a)% 写出系数矢量
ppa=poly2sym(pa) %表示成符号形式
ezplot(ppa,[-50,50]) % 绘图
求x^3-6x^2-72x-27的根。

a=[1,-6,-72,-85]; % 写出多项式系数矢量
r=roots(a) % 求多项式的根
(2)多项式的乘除运算
c=conv(a,b) %乘法
[q,r]=deconv(c,a)% 除法
求a(s)=s^2+2s+3乘以b(s)=4s^2+5s+6的乘积
a=[1 2 3]
b=[4 5 6] % 写出系数矢量
c=conv(a,b)
c=poly2sym(c,'s') % 写成符号形式的多项式
展开(s^2+2s+2)(s+4)(s+1)并验证结果被(s+4),(s+3)除后的结果。

c=conv([1,2,2],conv([1,4],[1,1]))
cs=poly2sym(c,'s')
c=[1 7 16 18 8]
[q1,r1]=deconv(c,[1,4])
[q2,r2]=deconv(c,[1,3])
cc=conv(q2,[1,3])
test=((c-r2)==cc)
其他常用的多项式运算命令
pa=polyval(p,s) % 按数组规则计算给定s时多项式的值
pm=polyvalm(p,s)% 按矩阵规则计算给定s时多项式的值
[r,p,k]=residue(b,a) % 部分分式展开,b,a分别是分子,分母多项式系数矢量。

r,p,k分别是留数,极点和值项矢量。

p=poly(x,y,n) % 用n介多项式拟合给定的数据
polyder(p) %多项式微分
x=[1 2 3 4 5];
y=[5.5 43.1 128 290.7 498.4];
p=polyfit(x,y,3)
x2=1:0.1:5;
y2=polyval(p,x2);
plot(x,y,'o',x2,y2)
2,线性代数
1,求解方程的根
t=[0 0.3 0.8 1.1 1.6 2.3]';
y=[0.82 0.72 0.63 0.60 0.55 0.50]';
e=[ones(size(t)) exp(-t)]
c=e\y
t1=[0:0.1:2.5]';
y1=[ones(size(t1)),exp(-t1)]*c;
plot(t1,y1,'b',t,y,'ro')
2,逆矩阵及行列式
inv(a)
det(a)
pinv(a)
3,矩阵分解(略)
4,数据分析
max(x)求x各列的最大元素
mean(x)求x各列的平均值
median(x)找出x各列的中位元素
min(x)求出x各列的最小元素
S=cumsum(x)求x各列元素累计和
sort(x)使x的各列元素按递增排序。

std(x)求x各列的标准差。

sum(x)求x各列元素之和
prod(x)求x各列元素之积
cumprod(x)求x各列元素累计积
5,协方差和相关系数
C=cov(x) % 求协方差阵
C=cov(x,y)% 求两组随机变量的协方差
P=corrcorf(x)% 求相关阵
P=corrcorf(x,y)% 求两组随机变量的相关阵
6,微分与梯度
DX=diff(X,k) % 对x的列求k介微分矩阵
V=del2(U)% 求矩阵U的五点差分矩阵
dyx=diff(Y)./diff(X) % X,Y为同阶矩阵,差分计算按列进行
dyx=gradient(Y,dx) % Y是矢量,dx是X的梯度值
[GX,GY]=gradient(Z,dx,dy)% GX,GY分别为二元函数Z对x,y的偏导求x的微分
x=[1 ,10 ,20;2 ,12, 23;3, 14, 26;3 ,14 ,29]
diff(x)
二元函数的偏导数和梯度
x=-2:0.2:2;y=-2:0.2:2;
[xx,yy]=meshgrid(x,y);
Z=xx.*exp(-xx.^2-yy.^2);
[GX,GY]=gradient(Z,0.2,0.2);
contour(x,y,Z,'k'),hold on,
quiver(xx,yy,GX,GY,'r'),hold off
7,插值
编辑命令函数,计算四种插值函数,并用图形显示
x=0:10;y=sin(x);xi=0:.25:10;
%将插值方法定义为单元数组
strmod={'nearest','linear','spline','cubic'}
%将图标定义为单元数组
strlb={'(a) method=nearest','(b) method=linear','(c) method=spline','(d) method=cubic'};
for i=1:4
yi=interp1(x,y,xi,strmod{i});
subplot(2,2,i)
plot(x,y,'ro',xi,yi,'b'),xlabel(strlb(i))
end
x0=0:10;y0=sin(x0);
x=0:.25:10;
y=spline(x0,y0,x);
plot(x0,y0,'ro',x,y,'k')
在命令窗口中输入命令,计算四种二维插值结果,并用图形显示[x,y,z]=peaks(7);mesh(x,y,z)
[xi,yi]=meshgrid(-3:0.2:3,-3:0.2:3);
z1=interp2(x,y,z,xi,yi,'nearest');
z2=interp2(x,y,z,xi,yi,'linear');
z3=interp2(x,y,z,xi,yi,'spline');
z4=interp2(x,y,z,xi,yi,'cubic');
subplot(2,2,1)
mesh(xi,yi,z1)
subplot(2,2,2)
mesh(xi,yi,z2)
subplot(2,2,3)
mesh(xi,yi,z3)
subplot(2,2,4)
mesh(xi,yi,z4)。

相关文档
最新文档