messenger 发表于 2011-5-14 17:10:36

仿真论坛MATLAB 版 FAQ Beta —— C. 数学计算

本帖最后由 messenger 于 2011-5-14 17:14 编辑

C. 数学计算

   C1 一个随机变量可以取1 2 3 4 5这5个值。每个值的概率分别为0.1 0.3 0.25 0.25 0.1。如何产生?
   C2   如何将参数传递到solve求解的方程组里面?
   C3   如何将参数传递到fsolve求解的方程组里面?
   C4   如何进行一般区域上的2、3维积分?
   C5   如何对分段函数进行积分?
   C6   元素为0、1矩阵中,如何对矩阵分割并将每个子矩阵中不全为零的个数相加?
   C7   如何求一个n阶矩阵A的伴随矩阵?
   C8   如何统计数组中相同元素的个数?
   C9   如何统计一组数据中各数值出现的次数?
   C10   为什么Matlab在计算(-8)^(1/3)时返回一个复数?
   C11   为什么factorial命令在符号计算中出错?
   C12   MATLAB 下如何求解平面和直线方程?
   C13   如何利用离散点进行插值,生成光滑闭合曲线?
   C14   如何用最小二乘法进行多元函数拟合?
   C15   MATLAB中如何进行椭圆拟合?
   C16   MATLAB中如何进行整数线性规划?

messenger 发表于 2011-5-14 17:12:57

C1
Q:一个随机变量可以取1 2 3 4 5这5个值。每个值的概率分别为0.1 0.3 0.25 0.25 0.1。如何产生?
A:
可以参考rocwoods兄写的这个程序 ,服从任意有限离散分布的随机数的程序以及randsrc函数


C2
Q:如何将参数传递到solve求解的方程组里面?
A:
如果将参数直接放入solve命令中,solve命令不识别。可以通过命令num2str转换。
例:
          clc
          a=1:0.5:10;
          for i=1:length(a)
          str1=;
          str2=['(',num2str(a(i)),'-2)*x^4+',num2str(a(i)),'^3*y^4+7*y^2-12 = 0'];
          S{i} = solve(str1,str2);
          end参考链接:http://forum.simwe.com/thread-750041-1-1.html

C3
Q:如何将参数传递到fsolve求解的方程组里面?
A:
在fsolve命令中,可以用匿名函数来传递参数。
当fsolve命令需要传递参数时,可以采用 = fsolve(@(x) myfun(x,P1,P2....Pn) ,x0,options)的形式。其中,P1,P2....Pn为要传递的参数。
参考链接:http://forum.simwe.com/thread-902236-1-1.html
               http://forum.simwe.com/thread-816392-1-1.html
               http://www.chinavib.com/forum/thread-83119-1-4.html
               http://www.chinavib.com/forum/thread-16308-1-1.html
               http://forum.simwe.com/thread-902491-1-1.html




C4
Q:如何进行一般区域上的2、3维积分?
A:
参考链接:一般区域二重、三重积分MATLAB计算方法
               MATLAB R2009a 新增函数quad2d介绍

C5
Q:如何对分段函数进行积分?
A:
参考链接:http://forum.simwe.com/thread-889225-1-1.html


C6
Q:元素为0、1矩阵中,如何对矩阵分割并将每个子矩阵中不全为零的个数相加?
A:
可以采用mat2cell、cellfun、any等命令。
参考链接:矩阵分割问题


C7
Q:如何求一个n阶矩阵A的伴随矩阵?
A:
如果矩阵A为可逆矩阵,可以通过A的伴随矩阵=det(A)*inv(A)关系式来求得。如果A为不可逆矩阵,需要编程求得。
参考链接:对不可逆矩阵怎样求伴随阵/伴随矩阵?

C8
Q:如何统计数组中相同元素的个数?
A:
可以采用unique、hist命令。
参考链接:如何统计数组中相同的数字及其个数


C9
Q:如何统计一组数据中各数值出现的次数?
A:
可以采用tabulate命令或xiezhh编写的HistRate程序。
参考链接:如何统计一组数据中各数值出现的次数?


C10
Q:为什么Matlab在计算(-8)^(1/3)时返回一个复数?
A:
正如正数的平方根有两个(一个正根、一个负根)一样,负数(和复数)的开方有多个根。例如,如果以[幅值*exp(i*theta)]的形式来表示某一个数的三次方根,则这些三次方根的形式为,[幅值^3*exp(i*theta/3*k)],其中k=1:3。
    -8可以表示为8*exp(i*pi),这样其立方根为2*exp(i*pi/3),2*exp(2*i*pi/3),2*exp(3*i*pi/3)。最后一个立方根可以简化为-2。
    Matlab总是以实轴正向为基准以逆时针方向返回第一个根。根据这一原则,你可以计算所有或部分方根。例如,如果你想得到一个负的实立方根,可以简单地求这个数绝对值的立方根,然后取相反数。
    一次得到所有根的一个方法是计算一个多项式的根:
      P=;
      roots(P)
参考链接:MATLAB FAQ (Apr 15,2003) Q5.6

C11
Q:为什么factorial命令在符号计算中出错?
A:
factorial命令不支持符号运算,可用gamma命令或prod命令代替。
参考链接:用matlab求解级数问题,
                如何求解此种符号方程

C12
Q:MATLAB 下如何求解平面和直线方程?
A:

参考链接:MATLAB 下如何求解平面和直线方程

C13
Q:如何利用离散点进行插值,生成光滑闭合曲线?
A:
参考链接:如何利用离散点进行插值,生成闭合曲线?
               一组(闭合的)离散点如何拟合成光滑曲线!


C14
Q:如何用最小二乘法进行多元函数拟合?
A:

参考链接:三维数组怎样拟合成三维曲线
偏最小二乘法的Matlab源码

C15
Q:MATLAB中如何进行椭圆拟合?
A:
可以采用
Andrew Fitzgibbon椭圆拟合程序;

Fit ellipses to 2D points using linear or nonlinear least squares;

Ellipse Fit (Direct method)

参考链接:Matlab的常见问题——58).如何求解对离散点的最优椭圆拟合?
               请教高手曲线拟合问题
               拟合椭圆参数方程
               一组(闭合的)离散点如何拟合成光滑曲线

C16
Q:MATLAB中如何进行整数线性规划?
A:
参考链接:http://forum.simwe.com/thread-947140-1-1.html
页: [1]
查看完整版本: 仿真论坛MATLAB 版 FAQ Beta —— C. 数学计算