利用描点绘图法求解复杂函数

假设有一个复杂函数(以一元为例),且是关于自变量的隐函数,即 f(x) = y 无法写出 x = g(y) 的表达式,那么就可以采用图像法求解。


需要用到的库为 numpy 和 matplotlib,在这里以 openSUSE 12.2 x64 为例:

sudo zypper in python-numpy python-matplotlib python-matplotlib-tk

其余 Linux 系统相似。Windows 系统需要去官方网站下载编译好的 exe 文件安装库。


范例代码:

#!usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import division	#除法纠正
import numpy as np
import matplotlib.pyplot as plt

# 基本常数定义

# 隐函数定义

def f(x):
	y = f(x)
	return y

# 定义自变量如何取值
xx = np.arange(-1,1,0.1)

def calc():	#计算并绘图
	a,b = [],[]	#建立绘制点的坐标列表
	for x in xx.tolist():	#要将array对象转换成列表对象
		det = matrix(x)
		a.append(x)
		b.append(y)
	plt.plot(a,b)	#绘制图形
	plt.show()	#显示图形

if __name__=='__main__':
	calc()

运行之后便可以得到曲线了:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是利用 MATLAB 的 impulse 函数和 step 函数求解连续函数的冲激响应和阶跃响应的步骤: 假设有一个系统,其传递函数为 H(s),其中 s 是复变量。我们可以将 H(s) 转换为时域中的冲激响应 h(t) 和阶跃响应 u(t),具体方法如下: 1. 冲激响应 利用 MATLAB 的 impulse 函数可以求解连续函数的冲激响应。具体步骤如下: (1)定义传递函数 H(s)。例如: H = tf([1], [1, 2, 1]); 其中 [1] 是分子多项式系数,[1, 2, 1] 是分母多项式系数,表示 H(s) = 1 / (s^2 + 2s + 1)。 (2)利用 impulse 函数求解冲激响应。例如: [t, h] = impulse(H); 其中 t 是时间向量,h 是冲激响应向量。 (3)绘制冲激响应图像。例如: plot(t, h); 2. 阶跃响应 利用 MATLAB 的 step 函数可以求解连续函数的阶跃响应。具体步骤如下: (1)定义传递函数 H(s)。例如: H = tf([1], [1, 2, 1]); 其中 [1] 是分子多项式系数,[1, 2, 1] 是分母多项式系数,表示 H(s) = 1 / (s^2 + 2s + 1)。 (2)利用 step 函数求解阶跃响应。例如: [t, y] = step(H); 其中 t 是时间向量,y 是阶跃响应向量。 (3)绘制阶跃响应图像。例如: plot(t, y); 最后,我们可以将 MATLAB 求解得到的冲激响应和阶跃响应与理论值进行比较,以验证求解的正确性。 注意:以上方法仅适用于连续函数。如果是离散函数,可以使用 MATLAB 的 impz 函数和 stepz 函数求解

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值