找回密码
 注册
Simdroid-非首页
查看: 106|回复: 1

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

  [复制链接]
发表于 2011-5-14 17:10:36 | 显示全部楼层 |阅读模式 来自 黑龙江哈尔滨
 楼主| 发表于 2011-5-14 17:12:57 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
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转换。
例:

  1.           clc
  2.           a=1:0.5:10;
  3.           for i=1:length(a)
  4.           str1=[num2str(a(i)),'*x^2+',num2str(a(i)),'^2*y^2+3*x*y+18=0'];
  5.           str2=['(',num2str(a(i)),'-2)*x^4+',num2str(a(i)),'^3*y^4+7*y^2-12 = 0'];
  6.           S{i} = solve(str1,str2);
  7.           end
复制代码
参考链接:http://forum.simwe.com/thread-750041-1-1.html

C3  
Q:如何将参数传递到fsolve求解的方程组里面?
A:
在fsolve命令中,可以用匿名函数来传递参数。
当fsolve命令需要传递参数时,可以采用[out] = 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=[1 0 0 27];
      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

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 19:22 , Processed in 0.035307 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表