MATLAB|利用符号计算的公式求解函数值

1. 问题描述

研究工作中,往往需要利用MATLAB的符号计算功能辅助推导公式。完成公式推导之后,往往需要利用推导出的公式做数值计算。

2. 技术背景

一个典型的MATLAB符号计算示例如下:

syms x
y = sin(2*x);                             % 原函数
y1 = diff(y,x,1);                         % 一阶导数
y1

运行结构如下:

y1 =
 
2*cos(2*x)

欲求解导数y1,在x1 = [1 2 3 4 5]处的数值。

此处,虽然求出了导数,但无法直接用于数值计算。因为所有变量均为符号变量,不同于数值变量。

3. 解决方案

  • 将数值(向量、矩阵)代入符号函数
    采用subs变量替换函数:
x1 = [1 2 3 4 5]
temp = subs(y1,x,x1)

得到:

temp =
 
[ 2*cos(2), 2*cos(4), 2*cos(6), 2*cos(8), 2*cos(10)]
  • 将temp的符号变量转换为double数值
temp2 = double(temp)

得到数值:

temp2 =

   -0.8323   -1.3073    1.9203   -0.2910   -1.6781

4. 实施示例

5. 常见问题

    原文作者:马骋
    原文地址: https://www.jianshu.com/p/d829a18d5172
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞