计算概论代写 Python代写 Introduction to computing代写
517CPSC111-Introduction to computing 计算概论代写 Assignment 2 – Python Practice: working with functions & Turtles As always, all your answers should use functions and every function should...
View detailsSearch the whole station
数值分析编程代写 Problem 1. Write a Python function: roots = findroots(p, a, b) whose arguments are: p: a list or ndarray of double-precision floating point numbers
roots = findroots(p, a, b)
whose arguments are:
and which computes all real roots of p(x) on the interval [a, b]. The function should return a list of the real roots in increasing order : if p has k roots xisuch that a ≤ x1 ≤ x2 ≤ · · · ≤ xk ≤ b, then roots[i] (1 <= i <= k) gives the value of xi. If there are no roots, then f returns an empty list (i.e. len(roots) == 0).
To implement this function, one idea is to use Sturm’s theorem recursively combined with a 1D rootfinder (see this page for more details about how to apply Sturm’s theorem—we will also discuss it in class). For this problem, you are free to use the scipy function brentq.
Test your function as you develop it—namely, use polyroots to check the whether the roots you compute are correct!
An algebraic surface (click through to see pictures of many examples) is defined as the locus of points which satisfies:
p(x, y, z) = 0, (x, y, z) ∈ R3, (1)
where p is a multivariable polynomial. Goursat’s surface is a quartic algebraic surface defined by (1) where:
p(x, y, z) = x4 + y4 + z4 + a(x2 + y2 + z2)2 + b(x2 + y2 + z2 ) + c = 0, (2)
for some choice of the parameters a, b, c ∈ R.
Using findroots, we will use raytracing to render an image of Goursat’s surface. We pick a point r0 = (x0, y0, z0), a unit ray direction d = (dx, dy, dz), and define the ray:
r(t) = r0 + td = (x0 + tdx, y0 + tdy, z0 + tdz), t ≥ 0. (3)
We then find the values of t for which (1) holds:
p(r(t)) = 0, t ≥ 0. (4)
Note that the composition of a multivariate polynomial with a single variable polynomial is just a single variable polynomial. This means that we can use findroots to solve (4).
In our simplified raytracing, we will set up a grid of rays, one for each pixel in an image, solve (4) using findroots to find the first intersection along the ray, and color each pixel using a simple Lambertian model of reflectance:
Cij= cos(αij)C. (5)
We will represent the image as an m × n × 3 ndarray, where img[i, j, :] gives the RGB values for the (i, j)th pixel. So, we use the same direction vector d for each pixel, but must vary the initial ray position so that we get a different parallel ray for each pixel. See this image. After creating the image, use plt.imsave to save it to disk.
Note that to use findroots to solve (4), we need to write p(r(t)) as a polynomial in t. This is tricky to do automatically using numpy, but you are welcome to try. Two other options: use sympy, or write down the polynomial by hand and then implement it as a new Python function (e.g., p of r(t, r, d, a, b, c)—note the dependence on the parameters).
更多代写:DATABASE代写 proctoru review作弊 英国psychology网课代修 essay conclusion怎么写 ethical approval怎么写 英文report怎么写
合作平台:essay代写 论文代写 写手招聘 英国留学生代写
CPSC111-Introduction to computing 计算概论代写 Assignment 2 – Python Practice: working with functions & Turtles As always, all your answers should use functions and every function should...
View details国外一些编程专业的作业难写吗?programming代写老师经验丰富吗? 国外programming代写 现在计算机专业越来越吃香,因为现在是互联网时代,很多岗位都需要计算机能力,因此很多大学生会选择学习相关计算机专业...
View detailsCS579/ECE599 Assignment Homework 1 物理攻击与对策代写 Please complete this assignment (100 pts total) and submit your report/program code on Canvas (all files compressed in one .zip witho...
View details学计算机的留学生一定要了解什么是python代考 国外python代考 计算机在现在是一个非常热门的行业,但是计算机专业也是非常难学的,计算机专业和法学、医学齐名,这三个专业被称之为最难熬的三个专业。这...
View details