先给个x的范围,比如x=[-100,100],
程序如下:
x=-100:100;
y=x^2+x-1;
plot(x,y)
得到的图形如下
1、首先打开matlab。
2、接着在命令行窗口中输入如下代码:syms x;y = x^2 + 5x == 0;x = solve(y,x)。
3、第一行代码syms x;表示定义符号函数x,第二行代码y = x^2 + 5x == 0;表示定义函数y = x^2 + 5x,并令y=0,第三行代码x = solve(y,x)表示求解x的值。
4、点击回车后,便可以得到x的值为0和-5,这样就完成了。
5、其次matlab的solve函数还可以求解其他一些复杂的函数。
java语言输入函数表达式生成相应的函数图像代码如下:
import javaawtBorderLayout;
import javaawtDimension;
import javaawtGridLayout;
import javaawtToolkit;
import javaxswingButtonGroup;
import javaxswingJButton;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
import javaxswingJRadioButton;
import javaxswingJTextField;
public class UI extends JFrame
{
MyPanel mp;
JPanel pl = new JPanel();
JPanel pl1 = new JPanel(),
pl2 = new JPanel(),
pl3 = new JPanel(),
pl4 = new JPanel();
JRadioButton rb1,rb2;
ButtonGroup bg = new ButtonGroup();
JTextField tf = new JTextField(16);
String[] s = {"y = sin(x)", "y = cos(x)", "y = tan(x)",
"y = pow(x, 2)", "y = pow(x, 3)", "y = log(x)",
"y = pow(2, x)", "y = sqrt(x)", "r = a(sita)"};
JComboBox cb;
JButton bn1 = new JButton("变宽"),
bn2 = new JButton("变窄"),
bn3 = new JButton("拉长"),
bn4 = new JButton("压短"),
bn = new JButton("绘图"),
exit = new JButton("退出"),
bn5 = new JButton("左移"),
bn6 = new JButton("右移"),
bn7 = new JButton("上移"),
bn8 = new JButton("下移");
public UI()
{
mp = new MyPanel(this);
pl1setLayout(new GridLayout(1, 2));
pl2setLayout(new GridLayout(1, 2));
pl3setLayout(new GridLayout(1, 2));
pl4setLayout(new GridLayout(1, 2));
pl1add(bn1); bn1setEnabled(false);
pl1add(bn2); bn2setEnabled(false);
pl2add(bn3); bn3setEnabled(false);
pl2add(bn4); bn4setEnabled(false);
pl3add(bn5); bn5setEnabled(false);
pl3add(bn6); bn6setEnabled(false);
pl4add(bn7); bn7setEnabled(false);
pl4add(bn8); bn8setEnabled(false);
plsetLayout(new GridLayout(20, 1));
rb1 = new JRadioButton("输入函数");
rb2 = new JRadioButton("选择已有函数");
rb2setSelected(true);
tfsetEnabled(false);
bgadd(rb1); bgadd(rb2);
rb1addActionListener(mp);
rb2addActionListener(mp);
pladd(rb1);
pladd(tf);
pladd(rb2);
cb = new JComboBox(s);
pladd(cb);
pladd(new JLabel());
pladd(pl1); pladd(pl2);
pladd(pl3); pladd(pl4);
pladd(bn);
pladd(exit);
bn1addActionListener(mp);
bn2addActionListener(mp);
bn3addActionListener(mp);
bn4addActionListener(mp);
bn5addActionListener(mp);
bn6addActionListener(mp);
bn7addActionListener(mp);
bn8addActionListener(mp);
bnaddActionListener(mp);
exitaddActionListener(mp);
thissetLayout(new BorderLayout());
thisadd(mp, BorderLayoutCENTER);
thisadd(pl, BorderLayoutEAST);
thissetTitle("平面直角坐标系画图小工具");
thissetSize(797, 600 + 37);
Dimension dn = ToolkitgetDefaultToolkit()getScreenSize();
thissetLocation((dnwidth - 797) / 2, (dnheight - 637) / 2);
thissetVisible(true);
thissetDefaultCloseOperation(3);
}
public static void main(String[] args)
{
new UI();
}
}
package math;
import javaawtColor;
import javaawtGraphics;
import javaawtGraphics2D;
import javaawtPoint;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaawteventMouseEvent;
import javaawteventMouseMotionListener;
import javaawtgeomEllipse2D;
import javaawtgeomLine2D;
import javaxswingJOptionPane;
import javaxswingJPanel;
public class MyPanel extends JPanel implements ActionListener,MouseMotionListener
{
UI ui;
int flag;
double h_times;
int w_times;
int dx;
int dy;
String str;
Point pt = new Point(0, 0);
void init()
{
flag = -1;
h_times = MathPI / 100;
w_times = 100;
dx = 300;
dy = 300;
}
public MyPanel(UI ui)
{
thisaddMouseMotionListener(this);
init();
thisui = ui;
}
public void paintComponent(Graphics g)
{
superpaintComponent(g);
Graphics2D g2 = (Graphics2D)g;
drawCoordinate(g2);
Line2D line;
g2setColor(ColorBLUE);
g2drawString("(" + (ptx - 300) + ", " + (300 - pty) + ")", ptx + 20, pty + 20);
switch(flag)
{
case 0:
g2drawString("y = Asin(Bx + C) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathsin(getReal_X(i)) w_times, i + 1, dy - Mathsin(getReal_X(i + 1)) w_times);
g2draw(line);
}
break;
case 1:
g2drawString("y = Acos(Bx + C) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathcos(getReal_X(i)) w_times, i + 1, dy - Mathcos(getReal_X(i + 1)) w_times);
g2draw(line);
}
break;
case 2:
g2drawString("y = Atan(Bx + C) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathtan(getReal_X(i)) w_times, i + 1, dy - Mathtan(getReal_X(i + 1)) w_times);
g2draw(line);
}
break;
case 3:
g2drawString("y = Apow(Bx + C, 2) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathpow(getReal_X(i), 2) w_times, i + 1, dy - Mathpow(getReal_X(i + 1), 2) w_times);
g2draw(line);
}
break;
case 4:
g2drawString("y = Apow(Bx + C, 3) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathpow(getReal_X(i), 3) w_times, i + 1, dy - Mathpow(getReal_X(i + 1), 3) w_times);
g2draw(line);
}
break;
case 5:
g2drawString("y = Alog(Bx + C) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathlog(getReal_X(i)) w_times, i + 1, dy - Mathlog(getReal_X(i + 1)) w_times);
g2draw(line);
}
break;
case 6:
g2drawString("y = Apow(2, Bx + C) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathpow(2, getReal_X(i)) w_times, i + 1, dy - Mathpow(2, getReal_X(i + 1)) w_times);
g2draw(line);
}
break;
case 7:
g2drawString("y = Asqrt(Bx + C) + D", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(i, dy - Mathsqrt(getReal_X(i)) w_times, i + 1, dy - Mathsqrt(getReal_X(i + 1)) w_times);
g2draw(line);
}
break;
case 8:
g2drawString("y = a(sita)", 105, 60);
for(double i = 0; i < 600; i += 001)
{
line = new Line2DDouble(getReal_X(i) Mathcos(getReal_X(i)), dy - getReal_X(i) Mathsin(getReal_X(i)) w_times, getReal_X(i) Mathcos(getReal_X(i + 1)), dy - getReal_X(i) Mathsin(getReal_X(i + 1)) w_times);
g2draw(line);
}
break;
}
if(flag != -1)
{
g2drawString("A = " + w_times, 105, 90);
g2drawString("B= " + h_times, 105, 120);
g2drawString("C= " + (300 - dx), 105, 150);
g2drawString("D= " + (300 - dy), 105, 180);
}
}
private double getReal_X(double x)
{
return (x - dx) h_times;
}
private void drawCoordinate(Graphics2D g2)
{
int len = 20;
Line2D line;
for(int i = 0; i <= 600 / len; i++)
{
g2setColor(ColorPINKdarker());
if(i == 300 / len)
g2setColor(ColorRED);
else;
line = new Line2DDouble(0, i len, 600, i len);
g2draw(line);
line = new Line2DDouble(i len, 0, i len, 600);
g2draw(line);
}
drawPoint(g2, 300, 300);
}
private void drawPoint(Graphics2D g2, double x, double y)
{
g2setColor(ColorYELLOW);
Ellipse2D circle = new Ellipse2DDouble(x - 2, y - 2, 4, 4);
g2fill(circle);
}
public void actionPerformed(ActionEvent e)
{
if(egetSource() == uirb1)
{
uitfsetEnabled(true);
uicbsetEnabled(false);
flag = -1;
}
if(egetSource() == uirb2)
{
uitfsetEnabled(false);
uicbsetEnabled(true);
}
if(egetSource() == uibn1)
{
h_times /= 11;
}
if(egetSource() == uibn2)
{
h_times = 11;
}
if(egetSource() == uibn3)
{
// uibn4setEnabled(true);
w_times += 10;
// if(w_times >= 300)
// uibn3setEnabled(false);
}
if(egetSource() == uibn4)
{
// uibn3setEnabled(true);
w_times -= 10;
// if(w_times <= 0)
// uibn4setEnabled(false);
}
if(egetSource() == uibn5)
{
dx -= 10;
}
if(egetSource() == uibn6)
{
dx += 10;
}
if(egetSource() == uibn7)
{
// uibn8setEnabled(true);
dy -= 10;
// if(dy <= 0)
// uibn7setEnabled(false);
}
if(egetSource() == uibn8)
{
// uibn7setEnabled(true);
dy += 10;
// if(dy >= 600)
// uibn8setEnabled(false);
}
if(egetSource() == uibn)
{
if(uitfisEnabled() == true)
{
str = uitfgetText();
if(str == null || strlength() == 0)
{
uibn1setEnabled(false);
uibn2setEnabled(false);
uibn3setEnabled(false);
uibn4setEnabled(false);
uibn5setEnabled(false);
uibn6setEnabled(false);
uibn7setEnabled(false);
uibn8setEnabled(false);
JOptionPaneshowMessageDialog(this, "请输入函数表达式 !");
return;
}
}else flag = -2;
uibn1setEnabled(true);
uibn2setEnabled(true);
uibn3setEnabled(true);
uibn4setEnabled(true);
uibn5setEnabled(true);
uibn6setEnabled(true);
uibn7setEnabled(true);
uibn8setEnabled(true);
init();
if(uicbisEnabled() == true)
{
flag = uicbgetSelectedIndex();
}
}
if(egetSource() == uiexit)
Systemexit(0);
repaint();
}
public void mouseDragged(MouseEvent arg0)
{
}
public void mouseMoved(MouseEvent e)
{
pt = egetPoint();
repaint();
}
}
1、
Partial Public Class Form1
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBasePaint
Dim pt(200) As PointF
Dim a As Integer
For a = 0 To 200
pt(a)X = 50 a
pt(a)Y = 200 - 50 MathSin(a - 1)
Next
MeCreateGraphicsDrawLine(PensRed, 0, 200, 800, 200)
MeCreateGraphicsDrawLine(PensRed, 50, 0, 50, 600)
MeCreateGraphicsDrawCurve(PensRed, pt)
End Sub
End Class
这是画了一个正弦函数 没有刻度 但是有坐标系
2、
可以利用chart控件:
这是我用chart统计的数据 这是画的数据图像,画函数图象应该是大同小异。
3、
画图还是用matlab吧,别的不好使。
1、几何画板
“几何画板”是一个作图和实现动画的辅助教学软件,用户可以根据教学需要编制出相关的图像和动画过程。几何画板是适用于数学、平面几何、物理的矢量分析、作图,函数作图的动态几何工具,它能够动态地展现出几何对象的位置关系、运行变化规律,是数学与物理教师制作课件的工具,几何画板提供丰富而方便的创造功能使用户可以编写出自己需要的教学课件。
2、Origin
Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,支持在Microsoft Windows下运行。Origin支持各种各样的2D/3D图形。Origin中的数据分析功能包括统计,信号处理,曲线拟合以及峰值分析。Origin中的曲线拟合是采用基于Levernberg-Marquardt算法(LMA)的非线性最小二乘法拟合。Origin强大的数据导入功能,支持多种格式的数据,包括ASCII、Excel、NI TDM、DIADem、NetCDF、SPC等等。
3、Igor Pro
Igor Pro是一个交互式软件环境,用于实验科学和工程数据,以及生成出版品质的图形和页面布局。自1989年推出以来,Igor Pro已被成千上万的技术专业人士所采用。
Igor Pro能够带来丰富的功能板块,包括数据存储模块、图形处理模块、数据分析、用户扩展程序模块等,可以方便的进行数据的处理和分析,支持生成多种图像格式。Igor Pro将功能强大的工具与易于使用的点击式界面相结合,为临时用户提供了便利,并为复杂用户提供了编程环境。Igor Pro的插件技术通过用于数据采集,仪器控制和计算任务的自定义工具扩展了内置功能。
4、LabPlot
LabPlot基于项目来对数据进行管理,通过树状结构来组织对象,通过项目中的文件夹与子文件夹的方式来实现更好的对象管理。在数据容器方面,LabPlot使用Spreedsheet表单和Matrix矩阵的方式来表示数据,以进行数据分析和可视化。
为了能够更好地组织可视化对象,比如绘图、标签、图像等,LabPlot通过Worksheet来放置这些对象,并支持不同的布局和缩放。标签也支持LaTeX。
4、MATLAB
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
扩展资料:
几何画板基本组成:
窗口:
由题标栏、菜单栏、工具栏、状态栏、绘图窗口和记录窗口等组成。
工具栏:
工具栏依次是选择工具(实现选择,及对象的平移、旋转、缩放功能)、画点工具、画线工具、画圆工具、文本工具和对象信息工具。在选择工具和画线工具按钮上按住鼠标左键停留片刻,会d出更多的类型工具;选择对象的方法可以选择点按、按Shift点按或拖动等方式选中对象。
关系:
几何画板中对象之间的关系如同生活中父母与子女关系。如果改变“父母”的位置或大小,为了保持与父母的几何关系,作为“子女”对象也随之变化。例如,我们先作出两个点,再作线段,那么作出的线段就是那两个点的“子女”。又如,先作一个几何对象,再基于这个对象用某种几何关系(平行、垂直等)或变换(旋转、平移等)作出另一个对象,那么后面作出的几何图形就是前面的“子女”。
信息工具:
选择“信息工具”,然后在某个对象上单击或双击,即可显示有关信息或d出该对象信息对话框。
参考资料:
以上就是关于写出绘制函数y=x平方+x-1的图像的MATLAB的程序。全部的内容,包括:写出绘制函数y=x平方+x-1的图像的MATLAB的程序。、matlab两个自变量的函数画图,怎么写程序、用Java编写的应用程序,输入函数表达式生成相应的函数图像,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)