语言简介

什么是 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 等工具箱