matlab符号计算方法02

news/2024/9/23 14:33:56/

collect、expand、horner、factor、simplify和pretty函数分别实现符号表达式的化简。 subexpr 和subs分别用来实现变量替换。

1.collect

syms x
coeffs = collect((exp(x) + x)*(x + 2)) %未指定符号变量symvar((exp(x) + x)*(x + 2), 1) %查找表达式中的符号变量%收集特定变量的幂系数
syms x y
coeffs_x = collect(x^2*y + y*x - x^2 - 2*x, x)coeffs_y = collect(x^2*y + y*x - x^2 - 2*x, y)syms a b
%指定对x、y收集
coeffs_xy = collect(a^2*x*y + a*b*x^2 + a*x*y + 
x^2, [x y]) %根据i和pi收集系数
coeffs_i = collect(2*x*i - 3*i*y, i)coeffs_pi = collect(x*pi*(pi - y) + x*(pi + i) + 3*pi*y, 
pi)%符号表达式和函数的系数集合
syms x y
fh = expand(sin(x + 3*y));
coeffs_cosy = collect(fh, cos(y))coeffs_sinxsiny = collect(fh, [sin(x) sin(y)])syms y(x)
fh2 = y^2*x + y*x^2 + y*sin(x) + x*y;
coeffs_y = collect(fh2, y)%为矩阵的每个元素收集系数
syms x y
A = collect([(x + 1)*(y + 1), x^2 + x*(x -y); 2*x*y - x, x*y + 
x/y], x)%收集函数调用的系数
syms a b c d e f x
F = a*sin(2*x) + b*sin(2*x) + c*cos(x) + d*cos(x) + e*sin(3*x) 
+f*sin(3*x);
collect(F, 'sin')collect(F, {'sin' 'cos'})

2. expand

syms x
sf = (sin(3*x) – 1)^2;
fep = expand(sf)%通过将“ArithmeticOnly”设置为true,抑制函数(如sin(3*x))的扩展。
fep2 = expand(sf, 'ArithmeticOnly', true)syms a b c
fl = log((a*b/c)^2);
flg = expand(fl)%通过将“IgnoreAnalyticConstraints”设置为true,应用
标识来简化对数的输入。
flg2 = expand(fl,'IgnoreAnalyticConstraints',true)

3. horner


syms x y;
fun = expand((x-2)^3)funh = horner(fun)fun1 = x^3+3*x+1;
fun2 = 3*y^2+4*y+7;
horfun = horner([fun1,fun2])fx = (x^2+x+1)*(x^3+1);
fxh = horner(fx)

4. factor

F = factor(823429252)%大数字用单引号括起来转化为符号数值
F = factor(sym('82342925225632328'))F = factor(sym(-92465)) %负数F = factor(sym(112/81)) %分数形式sym x;
fun = 4*x^3+x^4+8*x+5*x^2+6;
hfun = factor(fun)syms a b c d
y = -a*b^5*c*d*(a^2 - 1)*(a*d - b*c);
F = factor(y,[b c])

5. simplify

syms x c a b;
s1 = simplify(sin(x)^2 + cos(x)^2)s2 = simplify(exp(c*log(sqrt(a+b))))s3 = simplify([(x^2+5*x+6)/(x+2),sqrt(16)])

6.subexpr

syms x a
sol=solve(x^3+a*x+1,x,'MaxDegree',3)
r = subexpr(sol)pretty(r) %pretty 符号表达式syms a b c x
solutions = solve(a*x^2 + b*x + c == 0, x)syms s
[abbrSolutions,s] = subexpr(solutions,s)

7.subs

%替换
sola = subs(sol,a,1)
solv = vpa(sola,15)%指定替换为数值矩阵
syms a t
SA = subs(exp(a*t) + 1, a, -magic(3))syms x y a b
fh = a*b*x*y;
%指定替换为函数
fh1 = subs(subs(fh,x,sin(x)),y,exp(y))%嵌套替换为对应数值
fh2 = subs(subs(fh1,a,5),b,3)%绘制二维曲面图
ezmesh(fh2)


http://www.ppmy.cn/news/729335.html

相关文章

javascript 实现像素px与毫米mm的转换

function unitConversion() {/*** 获取DPI* returns {Array}*/this.conversion_getDPI function () {var arrDPI new Array;if (window.screen.deviceXDPI) {arrDPI[0] window.screen.deviceXDPI;arrDPI[1] window.screen.deviceYDPI;} else {var tmpNode document.createE…

毫米和像素怎么换算_像素和毫米怎么换算啊??

满意答案 moguixu0211 2013.06.19 采纳率:43% 等级:12 已帮助:15878人 像素与毫米的转换 转换还需要知道另一个参数:DPI(每英寸多少点) 象素数 / DPI = 英寸数 英寸数 * 25.4 = 毫米数 对于显示设备,不管是打印机还是屏幕,都有一种通用的方法 先用GetDeviceCaps(设备句…

关于 字号、PX像素、PT点数、em、CM厘米、MM毫米之间的换算

关于 字号、PX像素、PT点数、em、CM厘米、MM毫米之间的换算 (2011-04-25 15:09:21)转载▼ 标签: 杂谈 分类: 专业知识 pt (point,磅) 是一个物理长度单位,指的是72分之一英寸。 px (pixel,像素)是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物…

MATLAB中将图像转换为二值图像im2bw

在MATLAB中将图像转换为二值图像,主要运用im2bw函数,涉及到一个灰度门槛的数值。 对于灰度图像 bwim2bw(I,level); level空着的话,默认是0.5。level一般使用graythresh函数来计算,至于graythresh函数中运用到的Otsus method&am…

关于PX像素、PT点数、CM厘米、MM毫米之间的换算

关于PX像素、PT点数、CM厘米、MM毫米之间的换算 像素px与厘米怎么换算 像素作为图像的一种尺寸,只存在于电脑中,如同RGB色彩模式一样只存在于电脑中。像素是一种虚拟的单位,现实生活中是没有像素这个单位的。在现实中我们看到一个人&#xff…

px和毫米的换算_px和mm换算(px相当于多少毫米)

px和厘米之间无法直接换算。在不同的环境下是不同的,没有一个绝对的比值。 原因:1、px是相对长度单位。像素是相对于显示器屏幕分辨率而言的。譬如,Windows的. 像素和厘米是不能直接转换的,只有分辩率(dpi)下才能进行转换。例如说明如下:平时经常使用72和300dpi,电脑显示…

关于bmp、jpg格式图片的解码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、为什么要解码? 二、bmp图片 1.bmp图片信息 2.获取图片信息 三、jpg图片 总结 前言 在学习C语言、文件IO、数据结构之后做了一个…

在Matlab图片里输入数学公式、符号和希腊字母等

在所有的Matlab Figure里都可以使用大量的Tex代码来输入公式、数学符号等。而且都能够写完立马显示,不对的话可以迅速更正。下图是插入“\delta”的效果: 下面是Matlab官方列出来的Tex代码列表,包含了绝大部分的希腊字母和数学符号。 Charact…