管理员

北太天元社区支持

此用户很神秘,没有留下任何信息

10帖子
74回复
1461积分
ID:011416
关于Windows平台4.2.0版本自动升级问题说明

各位用户您好,

近期我们发现一个自动更新相关问题:在Windows系统环境下,若您通过自动更新功能从4.2.0版本升级到更高版本时,安装包会被错误下载为适用于Ubuntu的版本。为了让您能正常完成升级,您可以手动从官网下载更高版本的安装包,然后替换安装即可。

对于给您带来的不便,我们深表歉意,也十分感谢您的理解与支持!


0 2025-09-26
如何在北太天元中用bex编译包含Matlab接口调用的C代码

现有的C代码里调用的是matlab的接口,需要改为调用北太天元的接口,如:

#include "bex/bex.h"

void bexFunction()

bxArray

……

方法如下


1.新建<mex.h>头文件,与要编译的C文件放同一个文件夹中

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define mxIsNaN    isnan

#define mxCreateDoubleMatrix          bxCreateDoubleMatrix
#define mxCreateLogicalMatrix         bxCreateLogicalMatrix
#define mxCreateStructMatrix          bxCreateStructMatrix
#define mxCreateCellMatrix            bxCreateCellMatrix
#define mxCreateSparse                bxCreateSparse
#define mxCreateString                bxCreateString
#define mxCreateCharMatrixFromStrings bxCreateCharMatrixFromStrings
#define mxCreateDoubleScalar          bxCreateDoubleScalar

#define mxAddField bxAddField
#define mxSetField bxSetField
#define mxSetCell  bxSetCell

#define mxGetNumberOfElements  bxGetNumberOfElements
#define mxGetNumberOfFields    bxGetNumberOfFields
#define mxGetDoubles           bxGetDoubles
#define mxGetLogicals          bxGetLogicals
#define mxGetField             bxGetField
#define mxGetFieldNameByNumber bxGetFieldNameByNumber
#define mxGetCell              bxGetCell

#define mxGetN     bxGetN
#define mxGetM     bxGetM
#define mxGetNzmax bxGetNzmax
#define mxGetJc    bxGetJc
#define mxGetIr    bxGetIr
#define mxGetPr    bxGetPr

#define mexErrMsgTxt    bxErrMsgTxt

#ifdef _WIN32
#define mystrcmp _stricmp
#else
#include <strings.h>
#define mystrcmp strcasecmp
#endif


2.在北太天元命令窗口输入“bex 文件名.c”,编译对应的C文件。

编译后会出现以下对话并在文件夹下生成“文件名.bexw64”等文件,例如

image.png


注意:

1)需安装C语言编译器,建议 VS 2019。

2)编译过程中出现乱码,是因为系统显示字体的原因。在系统“语言和区域”设置中,打开“使用Unicode UTF-8提供全球语言支持”选项,如下图所示,再次运行bex 文件名.c,显示正常。

image (1).png

image (2).png

0 2026-01-30
在北太天元中使用DeepSeek-V4

大家好,

由于DeepSeek-V4版本修改了模型名称,原来是:

deepseek-chat 

deepseek-reasoner


现在改为了:

deepseek-v4-flash

deepseek-v4-pro


旧有的 API 接口的两个模型名 deepseek-chat 与deepseek-reasoner 将于三个月后(2026-07-24)停止使用。

当前阶段内,这两个模型名分别指向deepseek-v4-flash 的非思考模式与思考模式。


在北太天元中,您可以这样配置(默认为思考模式):

deepseek-v4-flash,deepseek-v4-pro

您也可以加入deepseek-chat以使用deepseek-v4-flash的非思考模式,但是记得三个月后(2026-07-24)将其删除。

ScreenShot_2026-04-24_154223_651.png



后续我们会持续适配各类大模型最新版本,保障大家的使用体验,如有配置问题,欢迎随时咨询。

相关参考:

DeepSeek-V4 预览版:迈入百万上下文普惠时代

0 2026-04-24
通过codegen生成代码后,运行程序提示运行时错误

通过codegen生成代码后,运行程序提示运行时错误:内建函数 [eq] 导入失败(可能函数名不存在)。位置:[file: C:\codegen\builds\builtin_import.cppp, line:979]

0. main(...)

1. sinc(...)

86405F90ACC902E9BD2C986C0442AA10.png


示例问题代码:

function y=sinc(x)

    i = find(x==0);

    x(i) = 1;

    y = sin(pi*x)./(pi*x);

    y(i) = 1;


原因:

入口函数的入参只能是字符串,而且需要在命令行调用时给出参数


解决办法:

1. 程序修正示例

function y=sinc(a)

    x=str2num(a);

    i = find(x==0);

    x(i) = 1;

    y = sin(pi*x)./(pi*x);

    y(i) = 1;

2.运行时如果是双击bat文件执行的话,把参数仿bat文件里,就像这样

7D80ED846C1A266BDF92D987B3A48537.png



0 2026-04-27
Windows中运行北太天元安装程序时,提示损坏的映像

Windows中运行北太天元安装程序时,出现下面的报错提示:

baltamatica.exe-损坏的映像

D:\baltamaticaVlib\iconv-2.dll没有被指定在 Windows 上运行,或者它包含错误。请尝试使用原始安装介质重新安装程序,或联系你的系统管理员或软件供应商以获取支持。错误状态0xc0e90002。

微信图片_2026-04-27_142126_579(1).jpg


原因:

Windows智能应用控制阻止了安装程序的运行


解决办法:

设置->隐私和安全性->windows安全中心->应用和浏览器控制

微信图片_20260427142452_216_133.png

1. “智能应用控制”,点进去关闭

ScreenShot_2026-04-27_142747_959.png

2. “基于声誉的保护设置”->阻止可能不需要的应用,关闭

ScreenShot_2026-04-27_142911_081.png

2 2026-04-27
未定义的函数或变量 'isCharRowVector'

使用isCharRowVector或依赖该函数的其他函数,如mustBeTextScalar时,报未定义的函数或变量 'isCharRowVector'。

911D5FE877A232CDFD068101ED4B8021.png


原因:

函数文件确实


解决办法:

将下面链接中的文件放到baltamatica\scripts\checkfun这个目录下即可

isCharRowVector.m

0 2026-04-29
北太天元 SymPy 工具箱 v2.0 Preview

各位用户好,近期我们收到很多关于 符号计算工具箱 的功能需求和建议。为了让大家尽早用上重做后的工具箱,我们决定先以预览版形式发布,欢迎下载试用,也希望大家帮我们一起测试。


适配版本:北太天元 2025 版

支持平台:Windows 10/11、Ubuntu amd64/arm64、macOS arm64/x86_64

另外,由于2026年6月29日对SymPy工具箱又进行了一次更新,建议在完成本篇文档中的内容更新后,根据 SymPy工具箱更新说明 这篇文档进行再次更新


1. 主要更新

① 架构重构,实现函数重载

旧版的符号计算函数命名包含 sym 前缀,例如 symdiff、symint 等函数,使用起来不太方便。新版通过架构重构后,实现同名函数重载:

% 旧版
x = sym('x');  y = symdiff(sin(x));

% 新版
syms x;  y = diff(sin(x)); disp(y)   % diff 自动重载

② 新增近 20 个函数

涵盖 laplace / ilaplace、fourier / ifourier、solve / vpasolve、int / vpaintegral、limit、series、symprod、vpasum、cumsum / cumprod、integrateByParts 等。完整函数列表会在工具箱更新日志中提供。使用示例文件、函数说明文档会随更新包一同提供。

③ 多平台同步发布

2. 使用方法

下载对应平台的库文件 &rarr; 解压 &rarr; 替换到本地  2025 安装目录中相应位置即可生效。

3. 关于预览版

作为预览版本,实际使用中可能存在一些 bug 或与预期不一致的结果(部分函数的已知差异详见说明文档备注列)。如果您在使用过程中遇到任何问题、异常输出或有改进建议,欢迎直接在本帖下方留言反馈,我们会逐条跟进处理,您的反馈会直接帮助我们把正式版做得更好 

4. 下载

① Windows x86_64

SymPy-dev-2.0-preview-windows_x86_64

② Ubuntu amd64

SymPy-dev-2.0-preview-Ubuntu-amd64

③ Ubuntu arm64

SymPy-dev-2.0-preview-Ubuntu-arm64

④ macOS arm64

SymPy-dev-2.0-preview-MacOS_arm64

⑤ macOS x86_64

SymPy-dev-2.0-preview-MacOS_x86_64

⑥ 函数使用说明

符号计算工具箱预览版函数使用说明

5. 预览版更新指南

注:以下指南皆基于北太天元2025版本 进行。

① Windows下更新

    1. 加载插件

        a) 下载社区上对应系统的压缩包并将压缩包解压到本地,将其中的main.dll文件替换软件安装目录下文件夹(D:\baltamatica\plugins\SymPy)中的对应文件;

            并将原有北太天元安装目录下的 SymPy\scripts 目录删除(D:\baltamatica\plugins\SymPy\scripts),将压缩包中的scripts 放到SymPy目录下。

1.PNG

        b) 同时将压缩包中的libbt_builtin_array.dll替换软件安装目录下文件夹(D:\baltamatica\lib)中的对应文件。

2.PNG

        c) 打开北太天元2025,加载插件SymPy。(会默认同步加载Python)

3.png

    2. 加载脚本

        a) 从地址栏点击文件夹图标,选择压缩包解压后的文件夹Examples打开,就可以使用里面的所有示例了。(注意:推荐使用运行部分代码来运行每个示例)

4.jpeg

② Ubuntu下更新

    1. 加载插件

        a) 下载社区上对应系统的压缩包并将压缩包解压到本地,将其中的main.so文件替换软件安装目录下文件夹(/opt/Baltamatica/plugins/Sympy)中的对应文件;

            并将原有北太天元安装目录下的 SymPy\scripts 目录删除(/opt/Baltamatica/plugins/Sympy/scripts),将压缩包中的scripts 放到SymPy目录下。

        21.png

        b) 同时将压缩包中的libbt_builtin_array.so替换软件安装目录下文件夹(计算机/opt/Baltamatica/lib)中的对应文件。

22.png

        c) 打开北太天元2025,加载插件SymPy。(会默认同步加载Python)

23.png

    2. 加载脚本

        a) 从地址栏点击文件夹图标,选择压缩包解压后的文件夹Examples打开,就可以使用里面的所有示例了。(注意:推荐使用运行部分代码来运行每个示例)

24.png

③ macOS下更新

    1. 加载插件

        a) 下载社区上对应系统的压缩包并将压缩包解压到本地,将其中的main.dylib文件替换软件安装目录下文件夹(根据下图指引到Contents -> plugins -> SymPy)中的对应文件;

            并将原有北太天元安装目录下的 SymPy\scripts 目录删除(Contents -> plugins -> SymPy -> scripts),将压缩包中的scripts 放到SymPy目录下。

31.png

311.png

        b) 同时将压缩包中的libbt_builtin_array.dylib替换软件安装目录下文件夹(Contents -> Frameworks)中的对应文件。

32.png

        c) 打开北太天元2025,加载插件SymPy。(会默认同步加载Python)

33.png

    2. 加载脚本

        a) 从地址栏点击文件夹图标,选择压缩包解压后的文件夹Examples打开,就可以使用里面的所有示例了。(注意:推荐使用运行部分代码来运行每个示例)

34.png



1 2026-04-30
SymPy工具箱预览版 更新日志

1. 基本信息

SymPy工具箱    预览版    20260429    

本次 SymPy 工具箱预览版基于北太天元 2025 SymPy 插件完成架构重构,兼容 M 语言函数及语法,实现用户现有脚本无缝迁移;同时扩充符号计算能力,新增级数运算、积分变换、方程求解、高精度数值计算等高频函数,覆盖符号变量创建、极限微分计算、积分求解、符号化简及符号初等运算等核心应用场景,进一步完善北太天元符号计算功能。

2. 功能概览

SymPy 工具箱预览版全量功能详见下表。

需特别说明:部分旧版以 sym 为前缀的函数已在本次预览版中完成更名,具体可参见表格对应备注;另有部分旧版函数仍在重构适配中,相关能力将在正式版陆续开放。

函数名函数描述支持的语法备注
sym创建单个符号变量

x = sym("x")

sym(__,set)

sym(num)

sym(strnum)


syms创建单个或者多个符号变量

syms var1 ... varN

syms ___ set


cumprod符号累积乘积

B = cumprod(A)

B = cumprod(A,dim)

A 仅支持符号变量数组,不支持表达式
cumsum符号累积和

B = cumsum(A)

B = cumsum(A,dim)

A 仅支持符号变量数组,不支持表达式
series皮瑟级数series(f,var)
taylor泰勒级数

T = taylor(f,var)

T = taylor(f,var,a)

T = taylor(f,var,a,order)

原函数名:symtaylor
symprod级数的乘积

F = symprod(f,k,a,b)

F = symprod(f,k)


vpasum使用变精度进行数值求和

s = vpasum(f,a,b)

s = vpasum(f,x,a,b)


ilaplace拉普拉斯逆变换

f = ilaplace(F)

f = ilaplace(F,transVar)

1.不支持F为符号数值 

2.显示结果均多了Heaviside(x)

laplace拉普拉斯变换

F = laplace(f)

F = laplace(f,var,transVar)


limit符号表达式的极限

limit(f,var,a)

limit(f,var,a,"left")

limit(f,var,a,"right")

原函数名:symlimit

支持符号变量、符号表达式,不支持符号向量和矩阵

diff符号微分

Df = diff(f)

Df = diff(f,var)

Df = diff(f,var,n)

Df = diff(f,var1,...,varN)

原函数名:symdiff

支持符号变量、符号表达式,不支持符号向量和矩阵,方程

int定积分与不定积分

F = int(expr)

F = int(___,Name,Value)

原函数名:symint

仅支持部分Name

vpaintegral可变精度算术进行高精度的数值积分

vpaintegral(f,a,b)

vpaintegral(f,x,a,b)

vpaintegral(___,Name,Value)

Name仅支持'waypoints'
integrateByParts分部积分G = integrateByParts(F,du)积分项含有非积分式会报错
vpasolve数值求解符号方程

S = vpasolve(eqn,var)

S = vpasolve(eqns,vars)

1.Eqn 支持符号方程,不支持表达式

2.对于多个解的问题仅能返回一组解

solve方程和方程组求解器

S = solve(eqn,var)

S = solve(eqns,vars)

1. Eqn 支持符号方程,不支持表达式
vpa可变精度算术(任意精度算术)

yVpa = vpa(y)

yVpa = vpa(y,d)

原函数名:symvpa 

支持表达式,不支持数值(double)、向量和矩阵

subs符号代换snew = subs(s,match,replacement)

原函数名:symsubs

支持符号变量,表达式,方程,不支持符号向量和矩阵

double将符号转化为浮点数D = double(s)

原函数名:sym2double

仅支持符号数值,不支持向量和矩阵

fourier符号表达式的傅里叶变换

FT = fourier(f)

FT = fourier(f,transVar)

FT = fourier(f,var,transVar)


ifourier符号表达式的傅里叶逆变换

ifourier(F)

ifourier(F,transVar)

ifourier(F,var,transVar)


eq创建符号等式

A == B

eq(A,B)


simplify代数简化S = simplify(expr)

原函数名:symsimplify

仅支持符号表达式,不支持向量和矩阵

sqrt求符号表达式的平方根sqrt(x)不支持符号向量和矩阵
abs符号绝对值abs(z)不支持符号向量和矩阵
exp符号指数exp(x)不支持符号向量和矩阵
log符号对数log(x)不支持符号向量和矩阵
acos符号反余弦acos(x)不支持符号向量和矩阵
asin符号反正弦asin(x)不支持符号向量和矩阵
atan符号反正切atan(x)不支持符号向量和矩阵
cos符号余弦cos(x)不支持符号向量和矩阵
sin符号正弦sin(x)不支持符号向量和矩阵
tan符号正切tan(x)不支持符号向量和矩阵
acosh符号反双曲余弦acosh(x)不支持符号向量和矩阵
asinh符号反双曲正弦asinh(x)不支持符号向量和矩阵
cosh符号双曲余弦cosh(x)不支持符号向量和矩阵
sinh符号双曲正弦sinh(x)不支持符号向量和矩阵
tanh符号双曲正切tanh(x)不支持符号向量和矩阵


3. 已知问题

1) 使用过程中可能出现syms函数不存在的情况,重启软件即可解决。

2) 运行示例脚本时,可能会出现该脚本或其他脚本不存在的提示,重启软件即可解决;建议优先使用运行节功能,避免运行整个脚本。

3) 部分新增函数的帮助信息无法通过help函数获取,其具体使用方法可参照函数帮助文档。

4) 目前需通过disp函数打印符号变量及符号表达式的内容。

5) 部分函数的返回形式与对标软件存在差异,该差异不影响计算结果的正确性。


1 2026-04-30
SymPy工具箱更新说明

本次更新针对符号计算部分功能进行说明与修复,补充说明符号函数定义,微分方程求解,修复 subs 多字符替换,完善 series 和 int 的语法等功能。

更新方式:

1.完成2.0预览版中的更新操作

2.下载下面的文件,并将里面的代码和文件夹覆盖复制到北太天元安装目录的/plugins/SymPy/scripts下

scripts.zip

以下为具体更新内容、旧版问题、新版用法及示例:

一、补充符号函数定义

修复问题

原说明文档中仅介绍了 syms 支持定义基础符号变量,无法直接创建符号函数(如 f (x)、g (x,y))。

更正说明

Syms 支持直接创建符号函数,可一键定义单 / 多变量函数;支持先定义变量再定义函数 或 变量 + 函数同步定义。

示例

% 方式1:先定义变量,再定义函数
syms x  % 先创建变量x
syms f(x)  % 定义单变量函数f(x)
syms 'g(x)'  % 或使用字符串形式

% 方式2:变量+函数同步定义
syms x f(x)   % 定义单个变量
syms t w z(w,t) % 定义多个变量

注意:使用方式1时一定要先定义自变量,然后定义符号函数,否则命令会未生效但不进行报错。

二、补充常微分方程求解(dsolve)函数介绍

修复问题

使用 dsolve 函数出现错误,本次修复了部分问题完善语法,并给出了注意事项。

支持语法

1.S = dsolve(eqn) :求解微分方程 eqn,其中 eqn 是符号方程。使用 diff 和 == 来表示微分方程。例如,diff(y,x) == y 表示方程 dy/dx = y。通过将 eqn 指定为由微分方程组中的方程组成的向量来求解该微分方程组。

2.S = dsolve(eqn,cond) 求解具有初始条件或边界条件 cond 的 eqn。

3.S = dsolve(eqns,conds) 求解具有初始条件或边界条件 conds 的 方程组 eqns。

注意:这里的 eqns 需要使用 horzcat 进行并置或者使用元胞数组, conds 仅支持使用元胞数组的形式。

使用示例

% 求解一阶微分方程
syms a t f(t)
eqf = eq(diff(f, t), a*f);
disp(dsolve(eqf))
% 输出结果为: C1*exp(a*t)
% 加上初值条件:
disp(dsolve(eqf, eq(subs(f, t, 0), 5)))
% 输出结果为: 5*exp(a*t)
% 求解二阶微分方程:
eqf2 = eq(diff(f, t, 2), a*f);
disp(dsolve(eqf2))
% 输出结果为: C1*exp(-sqrt(a)*t) + C2*exp(sqrt(a)*t)
% 加上两个初值条件:
df = diff(f, t);
conds = {eq(subs(f, t, 0), 0), eq(subs(df, t, 0), 1)};
disp(dsolve(eqf2, conds))
% 输出结果为:exp(sqrt(a)*t)/(2*sqrt(a)) - exp(-sqrt(a)*t)/(2*sqrt(a))
% 求解二元常微分方程组:
syms t y(t) z(t)
eq1 = diff(y,t)==z;
eq2 = diff(z,t)==-y;
eqs = {eq1,eq2};
s = dsolve(eqs);
% 此时会返回 cell 数组:
disp(s{1})
% 输出结果为: Eq(y(t), C1*sin(t) + C2*cos(t))  
disp(s{2})
% 输出结果为: Eq(z(t), C1*cos(t) - C2*sin(t))

三、修复 subs 多字符替换功能

修复问题

subs 支持多字符替换但是结果不对,应该是命令未生效所致。本次修复了该问题。

使用示例

syms x y z % 定义符号变量
expr = x + 2*y + 3*z;

vars = horzcat(x,y,z);  % 使用horzcat将变量并置
syms a b
values = horzcat(1,a,b);

newexpr = subs(expr,vars,values);  % 使用变量替换
disp(newexpr)
% 修改前输出结果为 x + 2*y + 3*z  (似乎是未生效)
% 修改后输出结果为 2*a + 3*b + 1

四、series 语法功能完善

修复问题

函数series的语法使用有限,仅支持 series(f),其他情况均报错。在出现错误的基础上也完善了语法功能。

支持语法

1.series(f):默认按symvar(f,1)变量,在0 点展开至 5 阶

2.series(f, var):指定变量var,在0 点展开至 5 阶

3.series(f, var, a):指定变量var,在a 点展开

4.series(__,Name,Value):指定展开点 ExpansionPoint、阶数 Order(Name-Value 参数)

使用示例

syms x
f = sqrt(x) + x^2; % 待展开函数

% 示例1:默认展开
s1 = series(f);
disp(s1)

% 示例2:指定展开变量
s2 = series(f,x);
disp(s2)

% 示例3:指定展开点
s3 = series(f,x,1);
disp(s3)

% 示例4:指定展开点inf,展开阶数 9
s4 = series(f,x,'ExpansionPoint',Inf,'Order',9);
disp(s4)

五、int 语法功能完善

修复问题

当指定参数上下界 a,b 时运行报错。对 int 的所有输入参数组合进行的完善。下面是现已支持的语法。

支持语法

1.F = int(expr) :计算符号表达式 expr 的积分。使用默认积分变量。

2.F = int(expr,var) :计算 expr 关于符号标量变量 var 的不定积分。

3.F = int(expr,a,b) :计算 expr 从 a 到 b 的定积分。使用默认积分变量。

4.int(expr,[a b]) 等效于 int(expr,a,b)

5.F = int(expr,var,a,b) :计算 expr 关于符号标量变量 var 从 a 到 b 的定积分。

6.int(expr,var,[a b]) 等效于 int(expr,var,a,b)

7.F = int(___,Name,Value) :使用一个或多个 Name,Value 参量指定附加选项。支持的 Name 包括 'IgnoreSpecialCases', 'PrincipalValue', 'Hold'。

使用示例

% 示例:
% 不定积分
syms x y
disp(int(cos(x)))
% 输出结果为  sin(x)
disp(int(log(x + y), x))
% 输出结果为  x*log(x + y) - x + y*log(x + y)

% 定积分、重积分
disp(int(exp(-x), 0, inf))
% 输出结果为  1
disp(int(2*x, sin(y), cos(y)))
% 输出结果为  cos(2*y)
disp(int(int(exp(-x^2 - y^2), x, -inf, inf), y, -inf, inf))
% 输出结果为  pi

% 保持积分号和计算 Cauchy 主值
syms x;
disp(int(1/(x - 1), x, 0, 2))
% 输出结果为  nan
disp(int(1/(x - 1), x, 0, 2, "Hold", true))
% 输出结果为  Integral(1/(x - 1), (x, 0, 2))
disp(int(1/(x - 1), x, 0, 2, "PrincipalValue", true))
% 0

六、expand 函数bug修复

修复问题

expand 函数使用均报错,本次解决修复了报错问题。

支持语法

1.expand(S) 将展开 S 中的所有括号,并通过应用标准恒等式简化 cos(x + y) 等函数的输入。

2.expand(S,Name,Value) 使用一个或多个名称-值对组参量指定的附加选项。支持的 Name 包含 'ArithmeticOnly' 、'IgnoreAnalyticConstraints'。

使用示例

clear; clc;

%% 示例 1:多项式展开
% 展开二项式 (x+y)^2,验证基本的多项式展开功能
syms x y
g = expand((x+y)^2);
disp(g)        % 输出: x^2 + 2*x*y + y^2

dg = diff(g, x);   % 对展开后的多项式求关于 x 的导数
disp(dg)       % 输出: 2*x + 2*y

%% 示例 2:向量元素的批量展开
% 对向量中的每个元素分别进行展开,演示 horzcat 构造向量及批量展开
syms t
V = horzcat(sin(2*t), cos(2*t));   % 构造水平向量 [sin(2t), cos(2t)]
vf = expand(V);
disp(vf)       % 输出: Matrix([[2*sin(t)*cos(t), 2*cos(t)^2 - 1]])

%% 示例 4:三角函数展开与 ArithmeticOnly 选项
% 对比默认展开与仅算术展开的效果,演示 ArithmeticOnly 选项的作用
syms x
f = (sin(3*x) - 1)^2;
disp(expand(f))    
% 输出: 16*sin(x)^6 - 24*sin(x)^4 + 8*sin(x)^3 + 9*sin(x)^2 - 6*sin(x) + 1(完全展开三角函数)

disp(expand(f, 'ArithmeticOnly', true))  
% 输出: sin(3*x)^2 - 2*sin(3*x) + 1(不展开 sin(3*x),仅展开代数部分)

%% 示例 5:对数展开与 IgnoreAnalyticConstraints 选项
% 对比默认展开与强制展开对数的效果,演示忽略解析约束的作用
syms a b c
f = log((a*b/c)^2);
disp(expand(f))    
% 输出: log(a^2*b^2/c^2)(默认不展开对数,因涉及定义域限制)

disp(expand(f, 'IgnoreAnalyticConstraints', true))  
% 输出: 2*log(a) + 2*log(b) - 2*log(c)(强制展开,忽略 a,b,c>0 的约束)

七、修复 solve 求解多元方程组多个解问题

修复问题

solve 函数在求解多元方程组含有多个解的问题时会出现报错,修复该问题,并输出结构体数组形式包含解。

使用示例

%% 多元方程组求解,多个解
syms u v
% 定义方程组:使用 horzcat 将多个方程水平拼接
% 方程1: 2*u^2 + v^2 = 0  (两个平方项之和为零)
% 方程2: u - v = 1         (线性约束)
eqns = horzcat(2*u^2 + v^2 == 0, u - v == 1);
% 指定求解变量顺序 [v, u]
% vars 的顺序会影响返回结构体 S 中字段的排列:S.v 在前,S.u 在后
vars = horzcat(v, u);% 求解方程组
S = solve(eqns, vars)% 输出包含 v,u 字段的1&times;2结构体,说明有两组解
disp(S.v) % 输出解的v的值
disp(S.u) % 输出解的u的值

注意:多元方程组得到多个解时的结果保存在结构体数组中,数组的大小代表解的个数,结构体中的字段代表未知变量,使用 disp 显示时需要使用类似 disp(S.x) 的形式来分别显示所有解中x的值。

八、新增 log10 函数

使用示例

syms x
f = x^3;
fLog10 = log10(f)
disp(fLog10) % 输出 log(x^3)/log(10)


0 2026-06-29
北太天元科学计算与系统仿真软件v2025(鲲鹏适配版)

【安装包获取】

版本芯片操作系统安装形式
baltamatica-999.2025.dev0-1.openEuler.arm64.rpm    arm    openEuler    安装包         


【更新内容】

完成北太天元科学计算与系统仿真软件完成在openEuler系统和鲲鹏处理器上的深度适配,在性能方面较通用LinuxARM版有大幅提升,经内部测算:

  • 三种经典ODE求解器(ODE23、ODE45、ODE113)性能平均提升28.26%

  • 25种经典稠密矩阵、稀疏矩阵运算性能平均提升41.55%

  • 17种M语言经典结构解释器性能平均提升25.19%

  • 16种核心语法(while、if、switch、try等)性能平均提升30.08%


0 2026-07-08