说起数学软件,我们很多人脑子里浮现出的第一个就是 matlab,不可否认,matlab 确实是一个优秀的数学软件,但是它需要付费啊(这里不讨论盗版问题)。那么有没有一个同样强大但免费的数学软件呢?答案是肯定的,那就是本文所要说的 Maxima,当然了,不只是有这一个。

预备知识

在正式介绍其使用方法之前,想先介绍 Maxima 里面一些规则。

  1. 在求极限的时候,如果极限不存在,范围值可能为 und(极限不存在),ind(极限不存在但是有界),infinity(发散)
  2. 自然常数 e 用 %e 表示
  3. 圆周率 π 用 %pi 表示
  4. 注释:方法与 C 语言相同,/*...*/

一、求极限

在 Maxima 中用 limit 函数来进行极限求解。

limit (expr, x, val)  /*计算 x 趋近于 val 时 expr 的极限*/

limit (expr, x, val, dir) /*dir 为 plus 时求的是右极限,为 minus 时求的是左极限。*/

例如:

limit(sin(x)/x,x,0);

limit((1+1/x)^x,x,inf);

limit((2^(1/x)+1)/(2^(1/x)-1),x,0);

limit((2^(1/x)+1)/(2^(1/x)-1),x,0,minus);

limit((2^(1/x)+1)/(2^(1/x)-1),x,0,plus);

limit((2*x^2+x)/(x^2-2),x,inf);

二、求和与求积运算

可以使用 sum 和 product 函数进行求和以及求积操作。

sum (expr, i, i_0, i_1)  /*求和*/
product (expr, i, i_0, i_1) /*求积*/

例如:

sum (i^2, i, 1, 7);

sum (a[i], i, 1, 7);

sum(1/k^2,k,0,inf);

sum (1/3^i, i, 1, inf), simpsum;

product (x + i*(i+1)/2, i, 1, 4);

product (a(i), i, 1, n);

product (k, k, 1, n), simpproduct;

三、taylor 级数展开

函数f(x)的在 x = a 附近的幂级数可以通过 powerseries (f(x), x, a) 获得。

powerseries (f(x), x, a);/*求 x=a 处f(x)的幂级数*/

例如:

powerseries(1/(1-x^2), x, 0);

上面得到的结果中的求和指数 i2 看起来显得不那么专业,可以用 niceindices 函数将其变的看起来更专业些。

niceindices(powerseries(1/(1-x^2), x, 0));

很多时候我们无法得到级数的解析表示,这时候可以用 taylor (f(x), x, a, n)得到函数f(x)在x = a附近第 n 阶项((x - a)^n)以下各项的泰勒级数

taylor(sin(x), x, 0, 8);

同样,对多元函数也可以进行 taylor 展开。

taylor (sin (y + x), x, 0, 3, y, 0, 3);

利用 pade 近似可以将 taylor 级数转化为多项式函数。比如下面的例子

taylor(sin(x), x, 0, 8);

pade(%,5,5);

未完待续!!

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

Maxima 使用教程的更多相关文章

  1. NumPy的详细教程

    原文  http://blog.csdn.net/lsjseu/article/details/20359201 主题 NumPy 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想 ...

  2. OpenCV教程(44) harris角的检测(2)

          在上一篇教程中,我们得到的harris特征角二值图中,角的数目特别多,本章我们用一个局部最大化的方法,只保留局部值最大的harris特征角. // Harris角计算 cv::corner ...

  3. 【转】numpy教程

    [转载说明] 本来没有必要转载的,只是网上的版本排版不是太好,看的不舒服.所以转过来,重新排版,便于自己查看. 基础篇 NumPy的主要对象是同种元素的多维数组. 这是一个所有的元素都是一种类型.通过 ...

  4. 转:Numpy教程

    因为用到theano写函数的时候饱受数据结构困扰 于是上网找了一篇numpy教程(theano的数据类型是基于numpy的) 原文排版更好,阅读体验更佳: http://phddreamer.blog ...

  5. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  6. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  7. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  8. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  9. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  10. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

随机推荐

  1. disconf分布式配置管理(一) 安装与配置

    一.背景 在生产部署过程中,遇到以下问题: 1.由于节点较多,每次增量修改配置文件后都需要每个节点替换配置文件. 2.有些动态配置修改后,需要重启服务. 二.解决方案 1.使用linux文件共享配置文 ...

  2. 删除链表倒数第N个节点(19)

    双指针法 双指针法主要是最开始有两个指针fast,slow都指向链表的虚拟头节点dummy,然后快指针先移动,这里需要先向后移动n+1位(因为你最终是要找到目标节点的前一个节点),然后slow和fas ...

  3. 总结:redis 突然变慢

    用户量暴增,无法下单,凌晨的夜,静悄悄... 经过查找发现Redis. 获取不到连接资源,并且集群中的单台 Redis 连接量很高. 大量的流量没了 Redis 的缓存响应,直接打到了 MySQL,最 ...

  4. 内网渗透-Windows常用提权方法

    一.前言 将介绍常见的提权方法.从为什么该方法能够提权(原理)到使用方法. 二.系统内核漏洞提权 1.为什么能提权? 内核漏洞通常是指内核溢出漏洞,什么溢出呢?缓冲区溢出. 那什么是缓冲区溢出呢?当应 ...

  5. JavaScript – Temporal API & Date

    前言 Temporal API 是 JS 的新东西,用来取代 Date.虽然现在 (12-09-2024) 依然没有任何游览器支持 Temporal API,但它已经是 stage 3 了,而且有完整 ...

  6. Figma 学习笔记 – Comment

    步骤 按 c 键 -> 点击区域 -> 写 comment -> post 它不仅仅在 design 的 page 可以写 comment 哦, 在预览 prototype 页面也是 ...

  7. 大模型应用开发初探 : 通用函数调用Planner

    大家好,我是Edison. 上一篇,我们了解了什么是AI Agent以及如何用Semantic Kernel手搓一个AI Agent.有朋友留言说,自动函数调用对大模型有较高的要求,比如Azure O ...

  8. C++ STL queue容器——队列

    queue容器 基本概念 queue是一种**先进先出的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素. queue容器没有迭代器,所有元素进出都必须符合"先进先 ...

  9. C语言实现面向对象方法学的GLib、GObject-初体验

    0. 扫盲: GLib是用C写的一些utilities,即C的工具库,和libc/glibc(GNU C Library)没有关系. GLib是 Gtk+ 库和 Gnome 的基础.GLib可以在多个 ...

  10. 线段树 transformation——hdu 4578

    问题描述: 给定一个数列,数列中所有元素都初始化为0,对其执行多种区间操作 操作1:add修改:对区间[L,R]内的所有数加c 操作2:multi修改:对区间[L,R]内所有数乘以c 操作3:chan ...