matlab表达式编写求值

matlab表达式编写求值,第1张

比如我们输出一个函数f=Asin(x)-Bexp(Cx)这种表达式,A,B,C是你输入的任何参数
(1)你写上如下代码的M文件
function
f=dispf(A,B,C)
syms
x;
f=Asin(x)-Bexp(Cx);
end

x=[1:1:10];
y=[2:2:20];
pp=interp1(x,y,'spline','pp')
breaks=ppbreaks
coefs=ppcoefs
说明:
interp1得到的函数其实是分段函数。
函数的全部信息全部都在pp里
让我们看一下其breaks分量和coefs分量,他们蕴含着函数表达式,具体涵义如下:
假设coefs的第i行为a b c d,breaks的第i和i+1个元素为m和n
那么在区间[m,n]的函数表达式就是a(x-m)^3+b(x-m)^2+c(x-m)+d
下面是例子
coefs第一行是[0 0 2 2],breaks前两个元素是1和2
就代表在区间[1,2]的函数表达式是2(x-1)+2
______________________
pp=interp1(x,y,'spline','pp')
不是pp=interp1(x,y,x1,'spline','pp')
x1不要,得到的是蕴含了分段多项式函数的结构pp。
你要直接得到在x1处的值,直接就y1=interp1(x,y,x1,'spline')就可以了,不要'pp'。

 clc;clear;close all
x=1:100;y=100:100:300;[x,y]=meshgrid(x,y);
z=(3x+4y)(y-200)(y-300)/(100-200)/(100-300)+(2x+5y)(y-100)(y-300)/(200-100)/(200-300)+(7x+3y)(y-100)(y-200)/(300-100)/(300-200);
mesh(x,y,z)

如果要画y=x^3+x^2+x+5在[-20,20]上的图像,可利用以下方法,绘画区间可以自己定义:

方法一:

利用plot函数来绘画图像

x=0:01:20;     %规定绘画区间(从-20画到20,中间以0,1为间隔)

y=x^3+x^2+x+5;   %确定要绘画的函数,注意不要漏了“”

plot(x,y)

方法二:

利用ezplot函数来绘画图像

ezplot('x^3+x^2+x+5',[-20,20])

利用ezplot函数可以直接画出函数图像

扩展资料:


MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

参考资料来源:

百度百科-MATLAB

你是用什么拟合的 要是多项式拟合的就用 p是拟合的结果 f=poly2sym(p) f= 3x^5+5x^4+x^2+12 要是用lsqcurvefit 你就在用subs把结果带入函数就好了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12911723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存