1. Trang chủ
  2. » Luận Văn - Báo Cáo

ỨNG DỤNG GIẢI PHƯƠNG TRÌNH VÀ BẤT PHƯƠNG TRÌNH TRONG MAPLE

19 1,1K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 105,02 KB

Nội dung

Với Maple chúng ta có thể thực hiện giải được các bài toán từ những phép tóan đơn giản nhất, sơ cấp nhất cho đến những tính toán phức tạp nhất.. Bài thu hoạch này không đi quá sâu vì khô

Trang 1

Trường Đại Học Công Nghệ Thông Tin

BÁO CÁO CHUYÊN ĐỀ:

LẬP TRÌNH SYMBOLIC CHO TRÍ TUỆ NHÂN TẠO

ĐỀ TÀI:

ỨNG DỤNG GIẢI PHƯƠNG TRÌNH VÀ BẤT PHƯƠNG

TRÌNH TRONG MAPLE

GVHD: PGS.TS ĐỖ VĂN NHƠN Người thực hiện: Nguyễn Siêu Đẳng

TP.HCM – 2013

Trang 2

MỤC LỤC

Trang 3

LỜI NÓI ĐẦU



Maple là phần mềm của hãng Waterloo, là một công cụ tuyệt vời hỗ trợ cho việc học tập và nghiên cứu tóan học Với Maple chúng ta có thể thực hiện giải được các bài toán từ những phép tóan đơn giản nhất, sơ cấp nhất cho đến những tính toán phức tạp nhất

Không chỉ dừng lại ở việc hỗ trợ tính tóan, Maple từ phiên bản 10.0 trở về sau này còn có khả năng lập trình Ở phương diện này, có thể xem Maple như là một ngôn ngữ lập trình trong đó chúng ta có thể tạo ra những chương trình và những gói (package) để tái sử dụng

Một tính năng rất hay và cũng rất nổi bật là Maple có thể hợp tác với một ngôn ngữ chủ (host language) như VB6.0, VB.Net, Java Khả năng đặc biệt này của Maple giúp chúng ta thực hiện được những phần mềm (tính toán, hỗ trợ giải toán ) đuợc viết mã bằng ngôn ngữ chủ và liên kết với Maple để thực hiện các tác vụ toán học phức tạp mà đòi hỏi rất nhiều kĩ năng lập trình

Bài thu hoạch này không đi quá sâu vì không có nhiều thời gian để hoàn thiện cũng như giới hạn của sự thấu hiểu của học viên thực hiện nên chủ yếu giới thiệu về các ứng dụng cơ bản của Maple trong giải toán và lập ứng dụng giải phương trình, bất phương trình, mặt hạn chế chưa chú trọng nghiên cứu ứng dụng Maple để giải các bài toán về hình học hay lập trình kết nối với các ngôn ngữ lập trình chủ khác như C# Tuy nhiên, với thời lượng lên lớp hạn chế nhưng thầy Đỗ Văn Nhơn đã tận tình truyền tải một khối lượng lớn kiến thức, chia sẻ và định hướng phát triển hướng nghiên cứu cũng như những ứng dụng của biểu diễn tri thức và xử lý tri thức vào các bài toán trong thực tiễn Cảm ơn thầy đã tận tình giảng dạy và hướng dẫn hoàn tất bài thu hoạch này Chúc thầy được nhiều sức khoẻ

Trân trọng

Học viên thực hiện Nguyễn Siêu Đẳng

Trang 4

PHẦN I: SỬ DỤNG CÁC LỆNH TRỰC TIẾP VỚI MAPLE

Báo cáo tiểu luận này giới thiệu ứng dụng Maple trong chế độ tương tác trực tiếp giữa người sử dụng và Maple Cuộc đối thoại giữa người sử dụng với Maple thông qua lệnh gõ từ bàn phím vào dấu nhắc >_ và kết thúc lệnh bằng dấu ; cuối cùng nhấn phím [Enter] Maple sẽ thực hiện lệnh và trả lời ngay trên dòng tiếp theo Sau đó Maple cho hiện dấu nhắc >_ để chờ lệnh mới Dưới đây xin giới thiệu cơ bản về ứng dụng của Maple:

1.1 Thực hiện phép toán số học trong Maple

Trước hết, ta có thể sử dụng Maple để làm các phép tính số học thông thường (cộng, trừ, nhân, chia ) đối với các số nguyên, phân số, đa thức hoặc các hàm hữu tỷ, kiểu dữ liệu trong biểu thức ta muốn tính toán Ta chỉ việc đánh lệnh tính toán dưới dạng một biểu thức toán học

Ví dụ 1.1.1 Gõ biểu thức, đánh dấu ; ở cuối biểu thức và ấn phím Enter

> 32 + 12;

44

Ví dụ 1.1.2: Tính toán một vài biểu thức toán học đơn giản.

A Sử dụng kết quả của phép tính trước đó Chú ý dấu " trong biểu thức

> 2 + abs(-2);

4

> (4 + ("+ 6) / 999999-32516);

28/967483

B Nhập một biểu thức kéo dài nhiều dòng Chúng ta sử dụng dấu : để tránh việc in ra

số quá lớn

>2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20*21*22**23*24:

C Chúng ta lại sử dụng nó trong việc tính toán tiếp theo dùng dấu "

> " - 24!;

0

1.2 Biến số

Chúng ta có thể gán kết quả đã tính toán vào một ký hiệu để sử dụng lại chúng sau này, như S := (i^3, I=1 100); đó chính là việc ấn định giá trị này cho một biến số S

Trang 5

của Maple Nhưng không giống như các ngôn ngữ lập trình khác Maple có thể sử dụng những biến này theo nghĩa ẩn số của toán học Lệnh gán giá trị vào biến

<Tên biến> := <Biểu thức>;

Chúng ta dùng ký hiệu < > viết nghiêng là trong công thức có thể thay đổi được

trong lệnh đối với Maple Biến trong Maple thông thường được bắt đầu bằng một chữ cái, có thể dài tới 498 ký tự gồm chữ cái, chữ số hoặc dấu ngạch dưới Tất nhiên

không nên tạo ra các biến có độ dài tối đa, chúng ta nên được tạo lập sao cho thuận lợi

để gõ vào và dễ nhớ Những tên biến của Maple có thể được tạo lập bởi một dãy các

ký tự nằm trong dấu nháy đơn Những tên trong dấu nháy đơn có thể bao gồm bất kỳ

ký tự bàn phím nào (kể cả dấu trắng) Sau đây là một vài ví dụ về tên biến trong Maple :

expr1 x T Formula_47

d2DYDX 'a funny name?' 'The answer is='

'SessionLog.m'

Nhưng '1' khác 1 Ký tự số không là tên biến và nó không thể gán giá trị được Đừng nhầm bao quanh dẫy ký tự bằng dấu nháy kép ", Maple không sử dụng đấu này vào mục đích này, vì trước đây ta thấy nó đã sử dụng vào việc chứa các kết quả vừa tính

để ta sử dụng lại.Việc gán các biến không chứa giá trị nào ta phải luôn thực hiện lại lệnh > restart;

Ví dụ 1.2.1 Gán giá trị.

A Biến Tong là nhãn của công thức cộng hai biến bien1và bien2

> Tong := bien1 + bien2;

Tong := bien1 + bien2

B Chúng ta thiết lập giá trị cho hai biến bien1, bien2

>bien1:=3000;bien2:= 26400;

bien1 :=3000

bien2 := 26400

C Giá trị của Tong bây giờ là tổng giá trị của bien1 và bien2

> Tong := bien1 + bien2;

29400

D Nếu chúng ta thay đổi giá trị của một trong hai biến bien1 hoặc bien2

> bien1 := 3500;

Trang 6

bien1 := 3500

E Giá trị của Tong cũng sẽ thay đổi theo

> Tong := bien1 + bien2;

29900

F Tạo ra một tên biến chứa cả dấu trắng

>'Total energy':= tong * 40;

Total energy:=1196000

Maple có một số biến toàn cục cài sẵn để điều khiển các phép toán và kết quả tính toán như order, digit, chúng ta có thể thay đổi mặc định các biến này và sẽ kiểm nghiệm các biến này ở phần sau

1.3 Các hằng số toán học của Maple

Maple xây dựng sẵn một vài hằng toán học chuẩn ( ví dụ e, , ), ta chỉ việc dùng thông qua tên của hằng số

1.4 Các hàm toán học của Maple

Maple có sẵn các hàm toán học chuẩn, chúng ta chỉ việc sử dụng khi ta có biến đối số

Ví dụ 1.4.1

A Tự động giảm ước biểu thức 2|sin(-/2)|

> 2*abs(sin(-Pi/2));

2

B Tính Γ(7) - 6!

> GAMMA(7) - 6!;

0

C Tính i2e2 π√−1

> I^2*exp(2*Pi*sqrt(-1));

-1

D Tính e2lnx

> exp(2*ln(x));

Trang 7

Trong ví dụ trên ta thấy rằng x chưa có giá trị Maple coi đó là một ký hiệu toán học Những câu lệnh trong Maple được mở rộng để thực hiện việc ước lượng hoặc xấp xỉ

số, phép tính đạo hàm, phép lấy vi phân, tích phân, giải các phương trình và tìm giới hạn của các biểu thức toán học Chúng ta chỉ cần đánh các câu lệnh đó vào Maple để thực hiện yêu cầu của mình như : diff để tính đạo hàm, solve để giải các phương trình , Thực ra đây là các hàm thủ tục trong Maple, nó bao gồm các thuật toán giúp

ta giải toán

Ví dụ 1.4.2 Maple tính toán cùng với các ẩn số toán học

A Những biểu thức của Maple có thể chứa các ẩn số cũng như các số, và có thể được gán cho một nhãn Maple tự động đơn giản biểu thức bằng phép ước lượng biểu thức

đó

> expr1 :=(x+y+ x+ x*x*x + x)/2;

expr1 :=3/2 x +1/2 y +1/2 x3

> expr2 := ((4*expr1) - 2*y)/x;

expr2 :=(6x+2x^3)/x

B Biểu thức ký hiệu có thể chứa bất kỳ một hàm nào của Maple

>bigexpr:=sin(expr1)/ln(expr2^2);

sin(3/2 x+1/2 y+1/2x^3) / ln((6x+2x^3)^2/x^2)

1.5 Dấu ngoặc đơn và độ ưu tiên các phép toán

Khi nhập một biểt thức như >5 + 4 * 6; vào trong Maple Chúng ta hiểu là 5 +

24 (thực hiện phép nhân trước) hoặc 9*6 (thực hiện phép cộng trước) Maple đưa ra quy định áp dụng trong biểu thức ưu tiên các phép toán như chúng ta đã được học trong số học Ví dụ trên kết quả là 29 chứ không phải 54 điều đó có nghĩa là Maple thực hiện phép nhân trước phép cộng

Những người sử dụng cho rằng dấu ngoặc đơn là không cần thiết đôi khi sẽ gặp phải những vấn đề rắc rối bởi Maple không thực hiện được công việc như mong muốn của họ Những toán tử luỹ thừa của Maple thường đòi hỏi dấu ngoặc đơn để đảm bảo việc thực hiện công việc chính xác a(b^c) và (ab)^c nên được viết tách riêng ra như sau a^(b^c) và (a^b)^c Viết a^b^c không phù hợp với cú pháp trong ngôn ngữ Maple

Ví dụ 1.5.1: Những vấn đề phát sinh khi không sử dụng dấu ngoặc.

Trang 8

A Chúng ta muốn thực hiện (-5)^2 và nhập vào dòng lệnh dưới dạng-5^2;, nhưng Maple sẽ phủ nhận điều đó và thực hiện câu lệnh này theo dạng : -(5^2) và đưa ra kết quả bằng -25

> -5^2;

-25

B Chúng ta phải thiết lập dấu ngoặc đơn để biểu thức đúng với quy định của Maple

> -5*-5;

Syntaxerror, `-` unexpected

>-5*(-2);

10

C Chúng ta phải thiết lập dấu ngoặc đơn cho biểu thức mũ

> 2 ^ 3 ^ 4;

Syntax error, `^` unexpected

> 2 ^ (3 ^ 4);

2417851639229258349412352

1.6 Những thành phần của biểu thức.

Thông qua phép tính và thành phần số hạng của biểu thức bằng cách gõ trực tiếp vào Maple, chúng ta có thể tính toán được ý đồ của ta Chúng ta xem xét xem Maple quan niệm Biểu thức như thế nào Mỗi biểu thức của Maple có thể được định dạng như một hoặc nhiều loại ví dụ x+y+z là loại cộng (+) còn 2*3*x là loại nhân (*)

Mỗi biểu thức của Maple được giữ trong cấu trúc giữ liệu Nếu cấu trúc dữ liệu bao gồm một số thành phần thông tin , thì cấu trúc có nhiều phần Những phần của cấu trúc trải dài theo thứ tự tuyến tính Nghĩa là có phần thứ nhất, phần thứ hai

, Nhưng mỗi phần có cùng cấu trúc loại hoàn chỉnh Ví dụ x+y+z biểu diễn một cấu trúc dữ liệu Cấu trúc này có thể chia làm ba phần, mỗi phần chứa thông tin về thành phần của tổng đó là x,y và z Biểu thức 2*(x+y)*z cũng có cấu trúc gồm ba phần , nhưng phần hai lại có cấu trúc tổng mà trong nó lại có hai phần

Maple có một số hàm cho phép ta nhận thông tin về phần và loại của biểu thức

op(i,<biểu thức>) đưa ra phần thứ i của <biểu thức> Ví dụ op(1,2*x*y) là 2

nops(<biểu thức>) đưa ra số số hạng của biểu thức Ví dụ nops(2*x*y) là 3,

nops([4,3]) là 2

whatype(<Biểu thức>) đưa ra loại biểu thức Ví dụ whattype(2*x*y) là '*'

type(<Biểu thức, <tên loại>) đưa ra giá trị true (đúng) hoặc false (sai) phụ thuộc vào

biểu thức có cùng tên loại hoặc không Có thể có biểu thức thuộc loại mà nó là tổ hợp

Trang 9

của các tiêu chuẩn khác nhau Ví dụ type(2*x*y,'*'); là đúng, type(2*x*y,polynom)

cũng là đúng

Ví dụ 1.6.1: Loại và số hạng của biểu thức tính theo whattype và op

A whattype đưa ra loại của biểu thức đối số Loại của biến ẩn là chuỗi

>s:=x+2*y+sin(3*z^2);

s:=x+2 y+sin(3z2);

>whattype(s);

+

>whattype(t);

string

B nops đưa ra số số hạng của biểu thức Có ba số hạng trong tổng s

>nops(s)

3

C op(i,<biểu thức>) đưa ra số hạng thứ i của biểu thức

>op(1,s);

x

D Gía trị 0 ở đầu của op là tên hàm

>nops(op(3,s));

1

>op(0,op(3,s));

sin

E sin(3*z^2) ccó một số hạng, đó là đối số 3*z^2

>op(1,op(3,s));

3z2

F Lỗi xảy ra khi hỏi đối số thứ hai của sin(3*z^2), vì chỉ có một

>op(2,op(3,s));

error, improper op or subscript selector

H Phép chia như là phép nhân tích luôn coi hàng hữu tỷ như số hạng đầu tiên

>q:=x/(6*y)

q:=1/6 x/y

>type(q,'*');

Trang 10

>op(1,q);

1/6

>op(2,q);

x

>r:=op(3,q);

r:=1/y

>type(r,'^');

true

>op(1,r);

y

>op(2,r);

-1

1.7 Dãy biểu thức

Dãy biểu thức là việc sắp xếp đối tượng của Maple theo thứ tự và tách nhau bởi dấu phẩy, như a,b,c Dãy có thể được gán vào một biến như một giá trị giống như bất

kỳ một kết quả nào của Maple Trong Maple có nhiều hàm và cấu trúc dữ liệu liên quan tới dãy như cấu trúc tập hợp, cấu trúc danh sách và các hàm giải phương trình,

Ví dụ hàm solve nhiều khi đưa ra dãy các nghiệm, hàm op được cho một đối số, thì nó đưa ra dãy tất cả số hạng của thông số Ký hiệu NULL dùng cho dãy rỗng không có phần tử nào

Nhiều khi ta cần phải xây dựng dãy, ví dụ như nếu seq1 được gán vào dãy các biến a,b,c thì seq1,d sẽ ra dẫy a,b,c,d còn seq1,NULL,seq1,NULL sẽ ra a,b,c,a,b,c

Vì dãy thường xuất hiện trong thực tế nên Maple có một số hàm sẵn để xây dựng dãy

Xây dựng dãy biến đổi theo giới hạn số nguyên

seq(f(i),i=<cận dưới> <cận trên>)

Xây dựng dẫy biến đổi theo phần của biểu thức

seq(f(x),x=<biểu thức>)

Dạng một của seq sinh ra dẫy biểu thức bằng cách thay i vào f(i) từ giá trị cận dưới tới giá trị cận trên Biểu thức f(i) có thể là biểu thức bất kỳ chứa i, nhưng không

ở dạng hàm ẩn f(i) cũng có thể không có i khi đó mọi phần tử của dẫy là như nhau và đẫy được thay bằng chính phần tử này

Trang 11

Dạng hai của eq tạo ra dãy từ các số hạng của một biểu thức hoặc từ một biểu thức con của một biểu thức đã biết Ví dụ như f(op(1,<biểu thức>), ,f(op(n,<biểu thức>)

với n là số của số hạng biểu thức

Ví dụ1.7.1 Cấu trúc dãy và hàm seq

A seq hoạt động giống lệnh sum Tạo ra dãy số từ 12 giảm tới 0

>seq(12-i,i=0 12);

12,11,10,9,8,7,6,5,4,3,2,1,0

B Xây dựng dãy theo liệt kê

>seq1:=sin(x), x=0;

seq1:=sin(x), x=0

>seq1:=seq1, 5;

seq1:=sin(x),x=0,5

C Dẫy có thể dùng như một đối số cho hàm

>t:=taylor(seq1);

t:=x-1/6x^3+0(x^5)

D Dãy gồm số mũ và hệ số của số hạng trong biểu thức

>seq(op(i,t),i=0 nops(t));

x,1,1,-1/6,3,0(1),5

E Tạo dãy gồm số hạng thứ 0, 2 4 của dãy trên

>seq(op(2*i,t),i=0 2);

x,1,3

F op(<biểu thức>) chỉ có một thông số đưa ra dãy các số hạng của <biểu thức>,tương đương với p(1 nops (<bieeur thức>), <biểu thức>)

>op(x+y+z);

x,y,z

G op(i j,<biểu thức>) là dãy gồm các số hạng của biểu thức từ thứ i tới thứ j

>op(1 4,t);

1,1,-1/6,3

Trang 12

1.8 Cấu trúc tập hợp và danh sách trong Maple

Tập hợp của Maple được viết như một dãy bao quanh bởi dấu { }, đây là ký hiệu toán học cho tập hợp hữu hạn Cũng như các đối tượng khác của Maple tập hợp được gán giá trị như một biến, có thể làm đối số, kết quả của phép tính hoặc một hàm.Maple cung cấp một số toán tử như lấy hợp, lấy giao và hiệu trên tập hợp

Việc sắp xếp thứ tự trong tập hợp không có qui tắc nào đưa ra, chúng ta cố gắng sắp xếp dữ liệu khi đưa vào thì tập hợp sẽ dữ nguyên thứ tự đó

Danh sách của Maple là một dẫy nhưng trong nó không có phần tử lặp lại (mỗi phần

tử là duy nhất) Những phần tử trùng nhau trong danh sách sẽ bị loại bỏ chỉ để lại một Danh sách không có toán tử hợp, giao và trừ Danh sách của Maple tạo ra bởi dẫy nằm trong dấu [ và ] Phân biệt dẫy và danh sách: khi viết [a,b],[b,c] thì Maple hiểu là hai danh sách , còn khi viết (a,b),(b,c) thì chỉ là một dẫy mà thôi a,b,b,c

Hàm op (xem lại phần trước) tác dụng lên tập hợp và danh sách đối với các số hạng

và các phép toán tương ứng của chúng

Maple dùng lệnh subsop tạo ra phiên bản khác nhau của tập hợp, danh sách hoặc một cấu trúc dữ liệu với nhiều số hạng

Tạo biểu thức bằng thay thành phần

subsop(<chỉ số thành phần>=<đại lượng thay>, <biểu thức>);

Ví dụ 1.8.1 Xử lý trên phần tử của danh sách

A Nối hai danh sách lại thành một danh sách khác

>list1:=[1,2,3];

list1:=[1,2,3]

>list2:=[4,5,6];

list2:=[4,5,6]

>list3:=[op(list1),op(list2)];

list3:=[1,2,3,4,5,6]

B Đảo lại danh sách

>n:=nops(list3);

n:=6

>list4:itseq(op(n-i,list3),i=0 (n-1))];

list4:=[6,5,4,3,2,1]

>list5:=[seq(list3[n-i+1],i=1 n)];

Trang 13

list5:=[6,5,4,3,2,1]

C Danh sách và toán tử của tập hợp

>set6:={list5[1 4]} intersect {op(list1)};

set6:={3}

D Dùng subsop thay phần tử

>list6:=subsop(5=47, list5);

list6:=[6,5,4,3,47,1]

1.9 Tính toán số với độ chính xác bất kỳ

Trong tính toán bao giờ chúng ta cũng chỉ nhận được kết quả gần đúng với giá trị thực, vì vậy Maple xây dựng hẳn một biến và một hàm để tính cho ta kết quả xấp xỉ tốt nhất với độ chính xác bất kỳ

I Tìm số xấp xỉ với biến Digits cho trước

evalf(<Biểu thức> )

Giá trị của biến điều khiển Digits xác định số các chữ số thập phân để sử dụng trong khi tính toán Giá trị của Digits được mặc định bằng 10, nhưng Chúng ta có thể thay đổi giá trị của Digits bằng việc gán cho nó một giá trị khác Ví dụ như nếu

Chúng ta muốn tính toán với 40 chữ số sau dấu chấm thập phân, Chúng ta hãy gán

cho biến Digits giá trị 40 (Digits :=40) trước khi bắt đầu công việc tính toán của

chúng ta

Ví dụ 1.9.1 Số thực với dấu chấm động trong Maple

A Việc tính các số thực với dấu chấm động được sử dụng khi biểu thức có số hạng phân số và số chấm động

> 1.0 + 3/5;

1.6000000000

> 3.0*10^20 - 2.99*10^13;

.2999999701*1021

B Việc tính các số thực với dấu chấm động không phải lúc nào cũng chính xác

> 1.0/3.0 + 1.0/3.0 +1.0/3.0;

.99999999

> " - 1;

Ngày đăng: 10/04/2015, 00:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w