数学实验:通过Matlab软件操作,对函数性质有进一步了解 f(x)=sin^2(1.006)x
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学实验:通过Matlab软件操作,对函数性质有进一步了解 f(x)=sin^2(1.006)x相关的知识,希望对你有一定的参考价值。
数学实验:通过Matlab软件操作,对函数性质有进一步了解
f(x)=sin^2(1.006)x,x∈[0,π]
1,在自己设定的区间内画出图形;
2.分割区间成n=100,n=200和n=1000个等长子区间并且求出在每个子区间中点的函数值;
3.计算由2产生的函数值的平均值;
4.用对于n=1000的分割,由3计算出的均值,对于x解方程f(x)=均值
5.用高数有关知识解释上面3与4的结果
——————
这是数学实验报告的综合练习,明天就要交了,跪求大神帮忙…急!!!!!T_T
format long;
m = [100,200,1000];
for i=1:3
%区间分n段等长子区间
n = m(i);
xn = (0:n-1)/n*pi; %xn(i)为第i段区间左端点值
d = pi/n; %子区间宽度
xnm = xn+d/2; %区间中点
ynm = f(xnm); %区间中点的函数值
S(i) = sum(ynm); %求和
end
%求平均值
Smean = sum(S)/sum(m) %函数均值
%解方程
x = fsolve(@(x) sin(1.006*x)^2-Smean,0.1)追问
这个确定是用Matlab做的吗?
追答你太逗了
追问…呵
参考技术A %f(x)=sin^2(m/100)x,x属于[0,pi],m=403%(1)-----------------
x=0:0.01:pi;
m=403;
f = sin(m*x/100).^2;
plot(x,f);
%(2)---------------
n=100;
x1 = 0:pi/n:pi;
x1 = x1 + pi/2*n;
x1 = x1(1:n-1);
f1 = sin(m*x/100).^2;
n=200;
x2 = 0:pi/n:pi;
x2 = x2 + pi/2*n;
x2 = x2(1:n-1);
f2 = sin(m*x/100).^2;
n=1000;
x3 = 0:pi/n:pi;
x3 = x3 + pi/2*n;
x3 = x3(1:n-1);
f3 = sin(m*x/100).^2;
%(3)--------------------------
m1 = (99*mean(f1)+199*mean(f2)+999*mean(f3))/(99+199+999);
disp('由2产生的函数值的平均值')
disp(m1)
%(4)-----------------------
xx = fsolve(@(x) sin(m*x/100)^2-m1,0.1);
disp('对于x解方程f(x)=均值')
disp(xx)追问
你这是复制来的,不一样,我看过了
参考技术B 请问有答案了吗第十周软件工程学习知识总结(《数据结构与算法》)
一.栈和队列
1.抽象数据类型 (Abstract Data Type 简称ADT) 是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。一旦定义了一个抽象数据类型及具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用抽象数据类型。
最常被提起的抽象数据类型就是栈 (stack) 和 队列 (queue)。从数学模型的观点来看,栈与队列都是一个放置相同物件的「容器」(container),而且每个容器都只有四个操作:
加入一个物件,取出一个物件,检查一个「特定」的物件,和检查容器内有没有物件。
栈和队列的「容器」各有其特性:
栈的物件是先进后出 (first-in-last-out, FILO) 或后进先出 (last-in-first-out, LIFO);队列的物件是先进先出 (first-in-first-out, FIFO) 或后进后出 (last-in-last-out, LILO)。 栈就如同一条单一出入口,且宽度只容一部汽车的停车道,先停进去的车,要最后离开。 队列就如同排队买电影票的人,先排进队伍的人,买到票后,就先离开队伍
计算机科学或软件工程的领域对栈与队列的四个操作有特定的名称:
栈:
push: 加入一个物件,入栈、推入、…;
pop: 取出一个物件,出栈、弹出、…;
top: 检查一个「特定」的对象,顶部、头部、…,
isEmpty: 和检查容器内有没有物件,为空、…。
队列:
enqueue: 加入一个物件,入队;
dequeue: 取出一个物件,出队;
head: 检查一个「特定」的对象,头部;
isEmpty: 和检查容器内有没有对象,为空。
栈和队列都是一种具有某些特性的线性表 (linear list),它们可使用固定数组、动态数组、单链线性表、或双链线性表来实现。
在 C 程序语言可使用动态数组 (dynamic array) 实现栈:
数据结构:
基本操作介面:
主程序中进行多回的入栈/出栈操作,测试回数为 trial_count,最多 10 回。每回连续入栈 push_count 个元素,然后出栈 pop_count 个元素;每回入栈最多 100 个元素,出栈最多是目前栈的元素个数。参数 trial_count, push_count 和 pop_count 都是随机数。
1.头文件
2.c档
3.主程序
4.运行结果
2.单向链接表的栈
在 C 程序语言也可使用单向链结表 (single-linked list) 实现栈:
将尾节点当成顶部,每次入栈都将新加入的元素放置在尾节点;底部一直都是在头节点;每次出栈都是移除尾节点的元素。
数据结构:
1.头文件
2.c档
3.主程序
4.运行结果
2.动态数组的队列
在 C 程序语言可使用动态数组 (dynamic array) 实现队列: 队列的初始状态是一段 (SEGMENT) 元素的容量,队列为空时,它的头部与尾部索引都是 -1。
当第一个元素入队后,队列的头部与尾部索引都是 0;之后每当队列的头部与尾部索引相同时,队列只有一个元素。如果队列最后的单一元素出队后,队列成为空的,将头部与尾部索引重设为 -1,且容量设为 SEGMENT 的长度。
队列的头部索引修改是循环地向左移动,也就是说当一个元素出队时,头部索引 head 被设成 (head+1)%capacity. 例如,假设目前队列有 50 个元素,即 capacity==50, 若 head 为 25,一个元素出队后,head 成为 26;若 head 为 0,一个元素出队后,head 成为 0。
队列的尾部索引修改是循环地向右移动,也就是说当一个元素入队时,尾部索引 tail 被设成 (tail+1)%capacity. 例如,假设目前队列有 50 个元素,即 capacity==50, 若 tail 为 25,一个元素入队后,tail 成为 26;若 tail 为 49,一个元素入队后,tail 成为 0.
队列的头部和尾部索引各为 head 和 tail 时,队列的元素个数为 size = (tail-head+capacity)%capacity+1.
队列随时会有空的位置准备接受下一个入队的元素,而且一个元素出队后空位不能超过或等于两段的元素长度。也就是说元素入队后,若 capacity-size==0, 则队列容量要扩增一段元素;元素出队后,若 capacity-szie≥SEGMENT*2, 则队列容量要缩减一段元素。请注意,队列容量扩增或缩减时,原有的队列元素需要重新搬动,调整位置。
数据结构:
1.头文件
2.c档
3.主程序
4.运行结果
以上是关于数学实验:通过Matlab软件操作,对函数性质有进一步了解 f(x)=sin^2(1.006)x的主要内容,如果未能解决你的问题,请参考以下文章
SOR迭代法实验报告c语言,数学实验“线性方程组的J-迭代,GS-迭代,SOR-迭代解法”实验报告(内含matlab程序代码).doc...