数学卷子做完了的图片怎么画出来(数学试卷上的图都是怎么画的)

数学卷子做完了的图片怎么画出来(数学试卷上的图都是怎么画的)

首页数学更新时间:2024-10-30 23:56:46

大火的人工智能本质上就是一些简单的函数的组合,比如f(x)=kx b,只是可能不只有x,还会x1,x2,...xn,只是维数不同,当维数很多的时候自然就需要方程组才能求解,维数越多自然需要的算力就越多。于是就有了矩阵Y = Kx b,而这里面的K就是训练中所谓的Weight。在CNN中通过反向求导来不断更新K的值,直到取到最小的误差。

这些东西早在上个世纪很多经典的算法都已经被开发出来了,只是当时的算力不行,直到最近几年,算力发生了质的变化,再一次让人工智能火了起来。

当然了,不懂原理,一点不耽误玩大模型的,只要有足够好的设备,自己都可以训练模型。

函数

函数,个人理解本质上就是一种映射。以下下内容来自百科:

函数(function),数学术语。其定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。函数的近代定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示,函数概念含有三个要素:定义域A、值域B和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。

LiveCharts2

Beautiful, animated, mv* friendly, automatically updated, cross-platform and easy to use。和Echats是一类的,可以画各种图表。

画函数图像

画出来后的函数图像如下,相信一看就知道这是什么函数了:

直接上代码(使用Avolonia mvvm模式): MainWindow.axaml

<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:AvaloniaApplication1.ViewModels" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="AvaloniaApplication1.Views.MainWindow" x:DataType="vm:MainWindowViewModel" xmlns:lvc="using:LiveChartsCore.SkiaSharpView.Avalonia" Icon="/Assets/avalonia-logo.ico" Title="AvaloniaApplication1"> <Window.DataContext> <vm:MainWindowViewModel /> </Window.DataContext> <lvc:CartesianChart Series="{Binding Series}"> </lvc:CartesianChart> </Window>

MainWindowViewModel

其中第三个函数是其他三个函数叠加成的,这里主要是想验证下傅里叶变化波的叠加。

using System; using System.Collections.Generic; using System.Threading; using LiveChartsCore; using LiveChartsCore.Defaults; using LiveChartsCore.SkiaSharpView; namespace AvaloniaApplication1.ViewModels; public class MainWindowViewModel : ViewModelBase { public ISeries[] Series { get; set; } = new ISeries[] { new LineSeries<ObservablePoint> { Values = GenerateSinPoints(1000, 0, 2 * Math.PI), Fill = null }, new LineSeries<ObservablePoint> { Values = GenerateSinPoints2(1000, 0, 2 * Math.PI), Fill = null }, new LineSeries<ObservablePoint> { Values = GenerateSinPoints3(1000, 0, 2 * Math.PI), Fill = null }, new LineSeries<ObservablePoint> { Values = GenerateSinPoints4(1000, 0, 2 * Math.PI), Fill = null } }; static ObservablePoint[] GenerateSinPoints(int segement, double start, double end) { int n = segement; var points = new ObservablePoint[n]; double zoneLen = (end - start) / segement; for (int i = 0; i < n; i ) { double x = start (i) * zoneLen; double y = Math.Sin(x); points[i] = new ObservablePoint(x, y); } return points; } static ObservablePoint[] GenerateSinPoints2(int segement, double start, double end) { int n = segement; var points = new ObservablePoint[n]; double zoneLen = (end - start) / segement; for (int i = 0; i < n; i ) { double x = start (i) * zoneLen; double y = Math.Cos(x); points[i] = new ObservablePoint(x, y); } return points; } static ObservablePoint[] GenerateSinPoints3(int segement, double start, double end) { int n = segement; var points = new ObservablePoint[n]; double zoneLen = (end - start) / segement; for (int i = 0; i < n; i ) { double x = start (i) * zoneLen; double y = Math.Cos(x) Math.Sin(x) 5 * Math.Cos(2 * x - Math.PI / 4); points[i] = new ObservablePoint(x, y); } return points; } static ObservablePoint[] GenerateSinPoints4(int segement, double start, double end) { int n = segement; var points = new ObservablePoint[n]; double zoneLen = (end - start) / segement; for (int i = 0; i < n; i ) { double x = start (i) * zoneLen; double y = 5 * Math.Cos(2 * x - Math.PI / 4); points[i] = new ObservablePoint(x, y); } return points; } }写在最后

高中的时候,如果老师能把这些东西画出来,展现在我们面前,也许能更加有助于我们理解很多函数的特性。指数函数,高斯函数,椭圆方程,双曲线方程等等都可以画出来的,直观的图像给人的感受真的不一样。

用python的话比C#简单好多,思路大同小异,都是有限元的思想,差分取值,只要两点差的足够小,就足够逼近原函数。

这里说到了函数,就说说这段时间的姜萍事件吧。我真的希望是真的,但从月考成绩来看,只要她不是有意放水,那么简单的卷子,才80(150分制)多分,而阿里竞赛居然考到93(100分制)分,地狱级难度的卷子,确实太矛盾了,基本上可以确定是别人替她考的,只是用了她的名字。

公众号

更多内容,欢迎关注我的微信公众号:半夏之夜的无情剑客。

,
大家还看了
也许喜欢
更多栏目

© 1998-2024 shitiku.com.cn,All Rights Reserved.