语言简介
什么是 TianYuan
TianYuan(天元)是一种专为数值计算和科学计算设计的脚本语言。它采用 Matlab 风格的语法,易于学习和使用,特别适合进行矩阵运算、数值分析、数据可视化等任务。
语言特点
🎯 简洁直观
语法简洁明了,接近数学表达式的书写方式。例如:
# 计算矩阵乘法就像数学公式一样简单
A = [1 2; 3 4]
B = [5 6; 7 8]
C = A * B
📊 强大的矩阵支持
矩阵是 TianYuan 的一等公民。所有数值都可以视为矩阵(标量是 1×1 矩阵),支持丰富的矩阵运算:
- 基本运算:加、减、乘、除、幂
- 元素级运算:
.*、./、.^ - 矩阵分解:特征值分解、Cholesky 分解等
- 线性代数:求逆、行列式、秩、范数等
📚 丰富的内建函数
提供 90+ 个内建函数,涵盖:
- 数学函数:三角函数、指数对数、取整、复数运算等
- 矩阵函数:线性代数、矩阵操作、逻辑索引
- 统计函数:求和、均值、最大最小值
- 字符串函数:strcat、strtrim、sprintf、strcmp 等
- 文件 I/O:fopen/fclose/fgetl/fprintf、load/save
- 方程求解:多项式求根、线性方程组、微分方程
- 图形绘制:2D/3D 绘图、散点图等
📈 图形可视化
内建完整的图形绘制系统,支持:
- 二维线图和散点图
- 三维曲线绘制
- 图形属性自定义(颜色、线型、标记等)
- 多图层叠加
- 坐标轴控制和图例
🔧 丰富的数据类型
变量无需声明类型,自动推断,支持多种数据类型:
x = 5 % 标量(数值)
y = [1 2 3] % 行向量/矩阵
z = "hello" % 字符串
c = 3 + 4i % 复数
ca = {1, "a"} % Cell 数组
st = struct() % 结构体(struct)
设计哲学
1. 简单优于复杂
TianYuan 追求简洁的语法设计,让代码更接近数学公式的自然表达。
2. 矩阵优先
一切皆矩阵。标量、向量都是矩阵的特例,这使得代码更加统一和优雅。
3. 实用为本
专注于数值计算和科学计算领域最常用的功能,而不追求大而全。
适用场景
- 数值计算:矩阵运算、线性代数问题
- 科学计算:数值分析、方程求解
- 数据分析:统计计算、数据处理
- 算法原型:快速实现和验证算法想法
- 教学演示:数学、物理、工程课程的计算演示
第一个程序
让我们从一个简单的例子开始:
# 定义两个向量
x = 1:10 # 生成 1 到 10 的向量
y = x .^ 2 # 计算每个元素的平方
# 绘制曲线
plot(x, y)
xlabel('x')
ylabel('x²')
title('平方函数')
这个程序展示了 TianYuan 的基本特性:简洁的向量生成、元素级运算和图形绘制。
与 Matlab 的关系
TianYuan 的语法受 Matlab 启发,但并不是 Matlab 的完整实现。主要区别:
- ✅ 支持 Matlab 风格的基本语法和常用函数
- ✅ 专注于核心的数值计算功能
- ✅ 推荐使用
#注释,同时兼容 Matlab 的%注释 - ✅ 支持复数、Cell 数组、Struct 等复合数据类型
- ✅ 支持 try/catch 异常处理和 nargin/nargout
- ❌ 不支持面向对象编程
- ❌ 不支持 Simulink 等工具箱